【问题标题】:Flower doesn't show task events花不显示任务事件
【发布时间】:2017-12-04 13:26:32
【问题描述】:

Here 我找到了如何向 Flower 发送事件。接下来,我尝试在我的代码中使用它,例如github issue。我的版本:

@celery.task()
def add():
    try:
        ...
    except Exception as exc:
        add.send_event('task-failed', exception=str(exc))

如果发生错误,Flower 会收到有关失败任务的信息:

Flower's dashboard

但是当我尝试点击并查找有关它的额外信息时,我看到:

Information about failed tasks

我应该如何使用send_event

【问题讨论】:

  • Celery 之后还会发送关于任务结果、状态的事件,此事件会重写所有之前的信息。

标签: python python-3.x celery flower


【解决方案1】:

可能的解决方案:

send_event 使用task.request.id 将事件发布到Flower。如果将此 id 替换为另一个,在 Flower 中将有关于一个任务的两条记录。但是需要为这些记录使用不同的 id。函数示例:

def send_to_flower(task, event, **kwargs):
    task.request.id = str(uuid4())
    task.send_event(event, **kwargs)

【讨论】:

    【解决方案2】:

    您搜索错误的状态。您应该搜索 state:FAILED 而不是 state:FAILURE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-16
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      相关资源
      最近更新 更多