【发布时间】:2019-09-18 19:44:10
【问题描述】:
我正在专用队列中运行一些长时间运行的任务。所以没有短时间运行的任务。目前,当我在一个队列上启动许多多个任务时,新任务正在提交给已经满的工作人员,即没有任务=工作人员并发。监听同一个队列的worker 2 仍然有更少的任务,可以接受更多的任务。理想情况下,任务应该交给工人 2。
这种行为的原因是什么?是因为预取吗?
我们进一步看到,提交给工人 1 的任务已经满了,在某个时间后,即大约 2 小时后转到工人 2。为什么会这样?为什么在 2 小时后?有没有办法减少任务从工人 1 到工人 2 的时间。
我的延迟确认已设置 = true 工人的可见性超时= 6小时。 经纪人是redis。 芹菜版 4.2.1
我附上了一些截图来捕捉这种行为: 我的另一个工人仍然是空的,但它去了已经满的工人
我只能在这个链接中接近这个http://docs.celeryproject.org/en/latest/userguide/optimizing.html#reserve-one-task-at-a-time
请以 trailblazer.streaming.growth_fortune trailblazer-growth-fortune-stream-0001 2019-04-25T10:10:00 为例。 该任务在 10:18 排队到 worker 1,然后在 2 小时后,它在 12:20 开始在 worker 2 上运行。 截图一:芹菜花 截图二:Airflow Ui
【问题讨论】:
标签: celery airflow celery-task airflow-scheduler