在Django中开始使用Celery

时间:2012-03-11 21:12:11

标签: django django-celery

我目前正在开发一个项目,我想尽早集成异步任务处理以及某种消息队列,这样我就可以通过简单地添加消息队列处理器服务器来快速扩展。集群。

我偶然发现了Celery,它引起了我的注意。由于它与Django很好地集成,我觉得我会得到很好的支持。我只是不确定如何开始,因为涉及很多配置。

现在,我正在运行Django项目中的所有内容(提供静态文件,管道等),所以如果可能的话,我希望内置一个消息队列来运行django runserver 。 (别担心,这只适用于开发。)如何在现有的Django项目中开始使用Celery?

2 个答案:

答案 0 :(得分:3)

djkombu现已弃用,django传输现已直接集成在kombu包中。

要在Django settings.py中定义后端,您可以使用:

BROKER_BACKEND = "django"

您可以在Kombu here找到不同的传输别名。

使用django-celery 2.5.5,celery 2.5.3和kombu 2.1.8对此进行了测试。

答案 1 :(得分:1)

Celery有一个很好的文档,也适用于those getting started,但有两个事实值得初学者提及:

  • 使用djkombu作为BROKER_BACKEND。这将为您提供一个非常简单的开发消息队列,其中所有消息都存储在django使用的SQL数据库中。由于celery的api,您可以轻松地将其替换为“真实”的消息队列进行生产:

    BROKER_TRANSPORT = "kombu.transport.django"

  • Django-celery的设置为CELERY_ALWAYS_EAGER。如果设置为True,则不会进行异步后台处理,所有通过celery调用的任务将同步运行(因此无需启动任何其他芹菜工作者 - 对调试也非常有用)。