我有一台服务器,其中两个django应用程序正在运行appone,apptwo 对于他们来说,两个芹菜工人开始执行命令:
celery worker -A appone -B --loglevel=INFO
celery worker -A apptwo -B --loglevel=INFO
两者都指向相同的BROKER_URL ='redis:// localhost:6379'
使用db 0和1
设置redis我可以在两个应用程序的日志中看到这两个应用程序中配置的任务,这会导致警告和错误。
我们可以在django设置中进行配置,使芹菜专门工作而不会干扰彼此的任务吗?
答案 0 :(得分:1)
您可以route tasks到不同的队列。用两个不同的-Q myqueueX
启动Celery,然后在两个Django项目中使用不同的CELERY_DEFAULT_QUEUE
。
根据您的Celery配置,您的Django设置应如下所示:
CELERY_DEFAULT_QUEUE = 'myqueue1'
您还可以通过以下方式获得更精细的控制:
@celery.task(queue="myqueue3")
def some_task(...):
pass
此处有更多选项: