如何在 Django 中启动和停止 celery beat 和 workers?

How to start and stop celery beat and workers in Django?

我每 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')

我有 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。 现在,我希望能够通过按网页上的按钮来启动和停止所有 运行ning 任务。

我该怎么办?

我在这个页面上找到了我的答案: https://realpython.com/asynchronous-tasks-with-django-and-celery/#reader-comments