Home Articles

在服务器中运行两个芹菜 Worker 为两个django应用程序

Asked
Viewed 727 times
1

我有一个服务器,其中两个django应用程序正在运行appone,apptwo为他们,两个芹菜 Worker 启动命令:

celery worker -A appone -B --loglevel=INFO


celery worker -A apptwo -B --loglevel=INFO

两者都指向相同的BROKER_URL ='redis:// localhost:6379'

使用db 0和1设置redis

我可以在两个应用程序的日志中看到这两个应用程序中配置的任务,这会导致警告和错误 .

我们可以在django设置中配置芹菜工作而不会干扰彼此的任务吗?

1 Answer

  • 1

    你可以route tasks到不同的队列 . 用两个不同的 -Q myqueueX 启动Celery,然后在两个Django项目中使用不同的 CELERY_DEFAULT_QUEUE .

    根据您的Celery配置,您的Django设置应如下所示:

    CELERY_DEFAULT_QUEUE = 'myqueue1'
    

    您还可以通过以下方式获得更精细的控制:

    @celery.task(queue="myqueue3")
    def some_task(...):
      pass
    

    更多选择:

    How to keep multiple independent celery queues?

Related