python - 如何使用 celery 配置不同的工作池?

标签 python queue scheduled-tasks task celery

我需要使用(通常)以下三类工作人员部署排队执行服务:

  1. 一个周期性的、低优先级的作业类,需要很长时间,可以串行处理;这些作业最多只能使用系统中的 0..2 个 worker。

  2. 一个定期的、对截止日期敏感的工作类,需要中短时间(例如,5 分钟结束)

  3. 一个临时作业类,其优先级高于 #1,但可以与 #2 交错。当此类工作进入时,来自第 2 类的任何不活动的 worker 都应该处理它,而不会让 worker 池因 #2 而挨饿

所有三个作业类都是相同的任务,它们之间的唯一区别是它们的请求方式;它们将采用相同的输入并生成相同的输出,但每个都有不同的性能保证。

我如何使用 celery 实现这个?

最佳答案

您可以使用 Celery Routing实现你的目标。您要做的是设置三个不同的路由键,并让多个 celery worker(具有自定义配置)列出您设置的特定路由键。

关于python - 如何使用 celery 配置不同的工作池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665441/

相关文章:

python - Pandas:将 DataFrame 与稀疏矩阵连接起来

python - 如何在opencv中在黑色像素轮廓上计算Solidity?

python - Pandas:如何水平合并多个 CSV(键、值)文件并使用文件名在生成的 DF 中命名 `value` 列

c - 初始化一个具有结构体的队列

javascript - jQuery 中的非嵌套动画序列?

mysql - 每当 gem 时,如何编写 Rails cron 作业?

python - 在 matplotlib 中的单独图中绘制子图轴

Java阻塞队列为什么我们在入队时有notifyall,条件是queue.size==0?

mysql - 仅将唯一条目从一个表复制到另一个 MySQL

parallel-processing - Apache Airflow : run all parallel tasks in single DAG run