celery - CeleryExecutor:气流指标“executor.queued_tasks”是否报告 celery 代理中的任务数?
问题描述
使用它的statsd 插件,Airflow 可以报告指标executor.queued_tasks
以及其他一些指标。
我正在使用 CeleryExecutor 并且需要知道有多少任务在 Celery 代理中等待,所以我知道什么时候应该产生新的工作人员。事实上,我设置了我的工人,使他们不能同时执行许多任务。这个指标是我需要的吗?
解决方案
没有。如果您想知道有多少 TI 在代理中等待,您必须连接到它。
等待在 celery 代理中获取的任务实例根据 Airflow DB 排队,但根据 CeleryExecutor 运行。这是因为 CeleryExecutor 认为任何成功发送到代理的任务实例现在都在运行(与数据库不同,数据库在将其标记为运行之前等待工作人员将其拾取)。
Metricexecutor.queued_tasks
根据执行者而不是数据库报告排队的任务数。
根据数据库排队的任务实例的数量也不是您所需要的,因为它报告了在代理中等待的任务实例的数量加上排队到执行器的任务实例的数量。但是你问,TI 什么时候会被困在执行者的队列中?当parallelism
Airflow 的设置阻止 executor 将它们发送到 broker 时。
推荐阅读
- redis - redis集群TPS太低了,只有8
- node.js - 在反应中将“缓冲区64 61 74 61 3a 69 6d 61 67 65 2f”转换为img src
- ajax - ajax 删除函数不会调用控制器中的相关操作
- browser - 如何在 localhost 上测试 Janus 视频会议
- opencv - OpenVX 可以用于 OpenCV 功能吗?
- angular - iframe 在 kolkov 角度编辑器中不起作用
- javascript - 如果有奇数个组件,有什么想法可以在左侧显示一个组件吗?
- javascript - javascript中的多维数组
- javascript - 如果数据包含某些特殊字符,则将 html 数据转换为 csv 无效
- php - 根据 2 个不同的符号将字符串拆分为 2 个不同的字符串