gpt4 book ai didi

python - 多个 celery 远程 worker

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:41 24 4
gpt4 key购买 nike

这个问题是关于在不同的机器上使用多个远程 Celery worker。 App 的实现可以概念化为:

enter image description here

我的应用程序(生产者)将每 5 分钟向队列中添加多个任务(比如 50 个)(假设一个 python for 循环每 5 分钟迭代一次要异步执行的任务列表间隔)。我希望 celery worker (将是远程机器)在推送这些任务后立即接手。

我的问题是 Celery/RabbitMQ 会自动处理任务分配(因此没有 Worker 会选择已经被队列中的工作人员选择的任务 - 即确保工作不会重复)并分配任务均匀分布,这样就不会在其他 worker 努力工作时让任何 worker 偷懒,或者是否必须在设置中对这些进行配置/编程?*

如果有人能转发给我相关文档,我将不胜感激(我正在查看 Celery 文档,但在这种情况下找不到关于远程 celery worker 的具体信息。)

最佳答案

自动,但您需要了解此处描述的预取功能:http://docs.celeryproject.org/en/latest/userguide/optimizing.html#prefetch-limits , 一直读到页尾。

简而言之,预取在两个级别上工作:worker 级别和进程级别,因为 worker 可能有多个进程。要在 worker 级别禁用预取,您需要在 celery 设置中指定 worker_prefetch_multiplier = 1,要在进程级别禁用,您需要在 worker 的命令行中指定 -Ofair 选项。

关于python - 多个 celery 远程 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47013843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com