我每隔30秒从API获取一些数据,并定期插入mongoDB。因此,我在后台使用芹菜进行处理。celery.py如下:
@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
from example.tasks import API
sender.add_periodic_task(30, API.s(), name='Api')
我的任务如下:
@shared_task
def API():
data=request.get(url).json()
db.collectionName.insert_many(data)
然后,我使用两个命令定期在后台运行任务:
celery -A DjangoCelery1 beat -l info
celery -A DjangoCelery1 worker -l info
一切正常,数据从API获取并保存在MongoDB中。现在,我想通过按下网页上的按钮来启动和停止所有正在运行的任务。
我该怎么办?
我在这个页面上找到了答案:https://realpython.com/asynchronous-tasks-with-django-and-celery/#reader-评论