小编acl*_*wes的帖子

CELERY_ROUTES-如何根据任务名称进行路由

我正在尝试让芹菜根据任务名称来路由任务...基本上,我有名为“ worker.some_name”和“ web.some_name”的任务,并且我使用了两个不同的队列,分别称为worker和网络分别。我希望所有工作人员任务都进入工作人员队列,反之亦然。目前,我有一个很大的CELERY_ROUTES字典,像这样:

CELERY_ROUTES = {
    "web.some_name": {
        "queue": "web"
    },
    "web.some_other_name": {
        "queue": "web"
    },
    etc.... }
Run Code Online (Sandbox Code Playgroud)

但是我想要一些更通用的东西:

CELERY_ROUTES = (MyRouter(), ) 
class MyRouter(object):
    def route_for_task(self, task, args=None, kwargs=None):
        if task.split('.')[0] == "worker":
            return {"queue": "worker"}
        return {"queue": "web"}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。有任何想法吗?谢谢。

celery

5
推荐指数
1
解决办法
6145
查看次数

标签 统计

celery ×1