Celery 芹菜任务显示名称

Celery 芹菜任务显示名称,celery,celery-task,Celery,Celery Task,我有一些芹菜任务,通过使用任务id实例化AsyncResult,定期从单独的进程检查它们的状态 由此,我得到任务状态。通过实现自定义结果后端和扩展的AsyncResult类(如所述),我还能够获得任务名称。但是,我希望能够为每个任务获得一个自定义的显示名称,这是人类可读的,这样我就可以以用户友好的方式显示状态信息 假设可以设置如下: @app.task() def my_task(args): display_name = "My Task" ... ... 然后以后我

我有一些芹菜任务,通过使用任务id实例化AsyncResult,定期从单独的进程检查它们的状态

由此,我得到任务状态。通过实现自定义结果后端和扩展的AsyncResult类(如所述),我还能够获得任务名称。但是,我希望能够为每个任务获得一个自定义的显示名称,这是人类可读的,这样我就可以以用户友好的方式显示状态信息

假设可以设置如下:

@app.task()
def my_task(args):
    display_name = "My Task"
    ...
    ...
然后以后我会做

result = ExtendedAsyncResult(task_id)
result.display_name
但是从我链接到的自定义结果后端来看,似乎没有任何方法可以访问任务的局部变量


有什么方法可以实现我想要的吗?

芹菜支持任务名称-希望这就是您想要的:

@app.task(name='My Task')
def my_task(args):
    ...
    ...

我的任务
现在将出现在您想要的任何地方(例如在flower中)。

谢谢……这可能就是答案。我忘了提到我试过了,但是(a)它破坏了我的任务(不确定为什么-如果我设置了“name”,它们就不会再运行了),以及(b)我不确定在这样的名称中使用空格等是否安全(即使我可以让它工作)。文档在所有示例中显示了更多类似变量的名称。它并没有明确禁止任何东西,只要名字是唯一的,但我对此没有信心。有趣。事实上,我是用下划线(而不是空格)来命名的,但据我记忆所及,它也应该用空格。。它的目的是记录。无论如何,如果你成功了,请更新,如果它解决了你的问题,请接受/投票:-)我发现了问题所在,这是我的错。有一个自定义任务路由器忽略了没有特定前缀的任务。一旦我解决了这个问题,这里的解决方案就完美了。酷!感谢更新在运行时设置此名称如何?