[英]Celery request: custom attribute
There is a tracker class, that just counts success
, failed
, pending
, and started
tasks via redis.有一个跟踪器 class,它只是通过 redis 计算
success
、 failed
、 pending
和started
任务。
The goal is to extend Celery, so its workers can access the group_id
and keep statistics for the group.目标是扩展 Celery,因此其工作人员可以访问
group_id
并保留组的统计信息。 I expect an interface similar to:我希望界面类似于:
def on_important_event(...):
group_id=uuid4()
for _ in range(count_of_jobs):
my_task.apply_async(..., group_id=group_id)
custom Task class would look like:自定义任务 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()
...
I could not find a way to implement the class so it will properly save and receive custom attribute through AMQP
.我找不到实现 class 的方法,因此它将通过
AMQP
正确保存和接收自定义属性。
I would recommend a different approach - write a custom monitor (check the Monitoring API document in the official Celery docs).我会推荐一种不同的方法 - 编写自定义监视器(查看官方 Celery 文档中的 Monitoring API 文档)。 A good starting point: Real-time processing .
一个好的起点: 实时处理。
This is basically how Flower and Leek work.这基本上就是Flower和Leek的工作方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.