例如:
@app.task()
def f(num):
if num == 0:
# shutdown this worker
# celery will not distribute any tasks to this worker
else:
return num
芹菜 -A 任务工作者 --loglevel=info -n worker1
当芹菜将 0 分配给工人 1 时,工人 1 将被杀死。在文档中,broadcast() 函数
>>> broadcast("shutdown") # shutdown all workers
>>> broadcast("shutdown, destination="worker1.example.com")
但这是错误的,我把它改成
>>> broadcast("shutdown", destination=["worker1"])
它也不起作用。
那么,如何实现这个功能呢?
通常工人名称以"celery@"开头。因此,在您的情况下,请尝试以下代码: celery.control.broadcast('shutdown', destination=['celery@worker1'])