我目前正在开发一个项目,我想尽早集成异步任务处理以及某种消息队列,这样我就可以通过简单地添加消息队列处理器服务器来快速扩展。集群。
我偶然发现了Celery,它引起了我的注意。由于它与Django很好地集成,我觉得我会得到很好的支持。我只是不确定如何开始,因为涉及很多配置。
现在,我正在运行Django项目中的所有内容(提供静态文件,管道等),所以如果可能的话,我希望内置一个消息队列来运行django runserver
。 (别担心,这只适用于开发。)如何在现有的Django项目中开始使用Celery?
答案 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调用的任务将同步运行(因此无需启动任何其他芹菜工作者 - 对调试也非常有用)。