繁体   English   中英

Celery 请求:自定义属性

[英]Celery request: custom attribute

有一个跟踪器 class,它只是通过 redis 计算successfailedpendingstarted任务。

目标是扩展 Celery,因此其工作人员可以访问group_id并保留组的统计信息。 我希望界面类似于:

def on_important_event(...):
    group_id=uuid4()
    for _ in range(count_of_jobs):
        my_task.apply_async(..., group_id=group_id)

自定义任务 class 看起来像:

class MyTask(Task):
    # declaring group_id somehow
    def apply_async(...):
        get_tracker(self.request.group_id).task_pending()
        ...

    def before_start(...):
        get_tracker(self.request.group_id).task_started()
        ...

    def on_success(...):
        get_tracker(self.request.group_id).task_success()
        ...

    def on_failure(...):
        get_tracker(self.request.group_id).task_failed()
        ...

我找不到实现 class 的方法,因此它将通过AMQP正确保存和接收自定义属性。

我会推荐一种不同的方法 - 编写自定义监视器(查看官方 Celery 文档中的 Monitoring API 文档)。 一个好的起点: 实时处理

这基本上就是Flower和Leek的工作方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM