【发布时间】:2020-08-11 19:47:34
【问题描述】:
我每 30 秒从 API 获取一些数据,并定期插入到 mongoDB。因此,我使用 celery 在后台处理它。 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')
我有如下tasks.py:
@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 中。 现在,我希望能够通过按网页上的按钮来启动和停止所有正在运行的任务。
我该怎么办?
【问题讨论】:
标签: python django celery periodic-task