作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在多台服务器上运行 celery,每台服务器的并发数为 2 或更多,我想对 celery 任务进行负载平衡,以便 CPU 使用率最低的服务器可以处理我的 celery 任务。
例如,假设我有 2 个服务器(A 和 B),每个服务器的并发数为 2,如果队列中有 2 个任务,我希望 A 处理一个任务,B 处理另一个任务。但是目前有可能 A 上的第一个进程将执行一个任务,而 A 上的第二个进程将在 B 空闲时执行第二个任务。
有没有一种简单的方法,通过 celery 扩展或配置,我可以将任务路由到 CPU 使用率最低的服务器?
最佳答案
最好的选择是使用来自生产服务器的 celery.send_task
,然后将工作人员部署到 n
实例上。然后可以使用 celery -A proj worker -l info -Ofair
像 @ealeon 提到的那样运行这些工作人员。
这样,负载将分布在所有服务器上,而无需在消费服务器上显示代码库。
关于python - 如何在多个服务器之间负载平衡 celery 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831111/
我是一名优秀的程序员,十分优秀!