无法理解Celery任务与Django的关系

时间:2017-04-28 02:47:43

标签: python django asynchronous celery

我正在使用Django来收听语音命令。我打算使用Celery作为一种运行单独的监听过程的方法,以及一个执行命令的单独过程。

当我用Celery设置Django时,我设想启动Django(./manage.py runserver)并在启动时启动这两个进程。

但到目前为止,我看到Celery应用程序是通过shell启动的,Django分别对它说话。

我的学习曲线的一个重要部分是了解Django与Celery的关系。我打算让所有东西都在Django环境中运行 - 也就是说,没有让Django在Celery旁边运行。

有人可以告诉我我在哪里感到困惑吗?

1 个答案:

答案 0 :(得分:0)

Celery是一个独立的过程,django挂钩并通过套接字进行通信。这意味着芹菜不会在同一个过程中运行。您必须将celery作为一个单独的进程启动,并添加“worker”,它将从队列中读取消息并处理工作负载。在django芹菜文档的最后,它向您展示了如何开始芹菜工作者: http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html#starting-the-worker-process

同一页面有一些关于如何开始使用芹菜的好教程:

http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#first-steps