Celery 任务显示名称

Joh*_*n B 4 celery celery-task

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

由此,我得到了任务状态。通过实现自定义结果后端和扩展 AsyncResult 类,如here所述,我也可以获取任务名称。但是,我希望能够为每个任务获取自定义显示名称 - 人类可读的内容,以便我可以以用户友好的方式显示状态信息。

假设,它可能设置为:

@app.task()
def my_task(args):
    display_name = "My Task"
    ...
    ...
Run Code Online (Sandbox Code Playgroud)

后来我会做...

result = ExtendedAsyncResult(task_id)
result.display_name
Run Code Online (Sandbox Code Playgroud)

但是从我链接到的自定义结果后端来看,似乎没有任何方法可以访问任务的局部变量。

有没有办法实现我正在寻找的东西?

Ita*_*ayB 5

Celery 支持任务名称 - 希望这是您正在寻找的:

@app.task(name='My Task')
def my_task(args):
    ...
    ...
Run Code Online (Sandbox Code Playgroud)

My Task现在出现,无论你想(在花为例)。

  • 谢谢...这可能应该是答案。我忘了提及我尝试过,但是(a)它破坏了我的任务(不知道为什么 - 如果我设置“名称”,它们就不会再运行),并且(b)我不确定这样做是否安全在这样的名称中使用空格等(即使我可以让它工作)。该文档在所有示例中显示了更多类似变量的名称。只要名称是唯一的,它就没有明确禁止任何内容,但我对此没有信心。 (2认同)