Python 一个芹菜打,很多工人?
我想运行一个由多个工作人员共享的Python 一个芹菜打,很多工人?,python,django,redis,celery,message-queue,Python,Django,Redis,Celery,Message Queue,我想运行一个由多个工作人员共享的DatabaseScheduler支持的celerybeat实例。Redis是经纪人。是只有一个工作人员接收计划任务,还是所有工作人员都接收计划任务?谢谢 您应该运行芹菜节拍调度器的单个实例,然后当它计划任务时,它会将消息放入消息代理队列(在您的例子中是Redis)。默认情况下,队列为“芹菜”,但可以根据您的代码/设置为每个任务或每个任务实例进行配置 当您启动一个或多个Worker时,如果需要,您可以告诉每个Worker要侦听哪些队列,但默认情况下,他们只会再次侦
DatabaseScheduler
支持的celerybeat
实例。Redis是经纪人。是只有一个工作人员接收计划任务,还是所有工作人员都接收计划任务?谢谢 您应该运行芹菜节拍调度器的单个实例,然后当它计划任务时,它会将消息放入消息代理队列(在您的例子中是Redis)。默认情况下,队列为“芹菜”,但可以根据您的代码/设置为每个任务或每个任务实例进行配置
当您启动一个或多个Worker时,如果需要,您可以告诉每个Worker要侦听哪些队列,但默认情况下,他们只会再次侦听“芹菜”队列上的消息。当消息被推送到队列时,第一个可用的工作进程将收到来自代理的推送通知并执行它。代理将确保一次只将单个任务实例推送到一个工作者
默认情况下,如果该工作者在执行任务时崩溃,那么它将丢失。您还可以使用该设置更改该行为,这意味着如果某个工作进程崩溃,其当前任务将被重新分配给下一个可用的工作进程。同样值得添加的是,可以使用
@app.task(ACKS\u LATE=True)