内部结构:工人 — Python 文档
来自菜鸟教程
Celery/docs/latest/internals/worker
内部人员:工人
简介
Worker 由 4 个主要组件组成:消费者、调度程序、中介和任务池。 所有这些组件以两种数据结构并行运行:就绪队列和 ETA 计划。
数据结构
计时器
定时器使用 heapq
来调度内部功能。 它非常高效,可以处理数十万个条目。
组件
消费者
使用 :pypi:`Kombu` 从代理接收消息。
收到消息后,它会转换为 celery.worker.request.Request
对象。
具有 ETA 或速率限制的任务被输入 定时器 ,可以立即处理的消息被发送到执行池。
ETA 和 rate-limit 一起使用将导致在 ETA 之后安排任务时遵守速率限制。
计时器
计时器调度内部功能,如清理和内部监控,但它也调度 ETA 任务和速率限制任务。 如果计划任务 ETA 已通过,则将其移至执行池。
任务池
这是一个稍微修改的 multiprocessing.Pool
。 它主要以相同的方式工作,但它确保所有工作人员始终都在运行。 如果缺少一个工人,它会用一个新的代替它。