ask*_*sol 11
您可以让每个celeryd实例都使用以worker命名的名称命名的队列:
celeryd -l info -n worker1.example.com -Q celery,worker1.example.com
Run Code Online (Sandbox Code Playgroud)
将主机名设置为worker1.example.com并将从名为相同的队列以及默认队列(已命名celery)中使用.
然后将任务指向特定的工作人员,您可以使用:
task.apply_async(args, kwargs, queue="worker1.example.com")
Run Code Online (Sandbox Code Playgroud)
类似于直接重试:
task.retry(queue="worker1.example.com")
Run Code Online (Sandbox Code Playgroud)
或者将重试指向同一个工人:
task.retry(queue=task.request.hostname)
Run Code Online (Sandbox Code Playgroud)