我有很多来自芹菜不同服务器的 Worker ,(如下图所示)
和许多任务:
@task(name="task1") def task1(): ....... @task(name="task2") def task2(): ......
我想只在“celery@40.218testlab_website”工作者上运行“task1” . 我该怎么配置?
您可以为工作人员提供不同的名称,指定每个工作人员在运行时从特定队列中读取,也就是:
celery -A tasks -n worker1 -q queue1 --loglevel=info celery -A tasks -n worker2 -q queue2 --loglevel=info ...
然后添加router,例如:
def route_task(name, args, kwargs, options, task=None, **kw): if name == 'task1': return 'queue1' elif name == 'task2': return 'queue2' return None
请注意,实现取决于您运行的芹菜版本(我使用的是3.1) - 它在4中略有改变 . 在我添加的链接中有更简单的路由器(在配置中) - 检查一下 .
祝好运
1 回答
您可以为工作人员提供不同的名称,指定每个工作人员在运行时从特定队列中读取,也就是:
然后添加router,例如:
请注意,实现取决于您运行的芹菜版本(我使用的是3.1) - 它在4中略有改变 . 在我添加的链接中有更简单的路由器(在配置中) - 检查一下 .
祝好运