代码之家  ›  专栏  ›  技术社区  ›  nanci

(芹菜):在特定工人中运行任务?

  •  1
  • nanci  · 技术社区  · 7 年前

    enter image description here

    @task(name="task1")
    def task1():
       .......
    
    @task(name="task2")
    def task2():
       ......
    

    我只想在上运行“task1”celery@40.218testlab_website“工人。我应该如何配置?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Community Neeleshkumar S    4 年前

    您可以为工作人员指定不同的名称,在运行时分配每个工作人员从特定队列中读取,也称为:

    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中有一点变化。 在我添加的链接(在配置中)中有更简单的路由器-请查看。

    祝你好运