gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:49:51 27 4
gpt4 key购买 nike

我试图让 celery 根据任务的名称来路由任务......基本上,我有名为'worker.some_name'和'web.some_name'的任务,我使用两个不同的队列,称为worker和网分别。我希望所有工作任务都进入工作队列,反之亦然。目前我有一个像这样的大 CELERY_ROUTES 字典:

CELERY_ROUTES = {
"web.some_name": {
"queue": "web"
},
"web.some_other_name": {
"queue": "web"
},
etc.... }

但我想要更通用的东西,比如:
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"}

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

最佳答案

您必须为您在 py 文件中定义的任务使用了装饰器“@app.task”。

您可以使用 @app.task(queue='queue_name') 路由您的任务

关于CELERY_ROUTES - 如何根据任务名称进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com