我使用Gearman向服务器分发作业。最初,当我只有8名员工时,他们会得到稳定的工作。然而,当我将服务器数量增加一倍时,工人们偶尔会找到工作。他们偶尔会停顿几分钟。
最初我认为这与积压连接的数量有关,所以我将其更改为200(而不是32)。这并没有解决问题。
我正在用Geaman的submit_multiple_jobs提交工作。像这样:
logging.warning("Jobs ready")
requests=gm_client.submit_multiple_jobs(jobs)
logging.warning("Jobs sent")
我正在使用gearman与python有人遇到过类似的问题吗?知道为什么会这样吗?
Gearman不以轮询方式分配作业,而是将它们全部放入队列中,当工人循环遍历队列以查看等待操作的作业时,他们就会获得作业。可能发生的情况是,一个工人操作作业的速度比其他工人拿作业的速度快,在这种情况下,我实际上建议减少工人的数量,因为即使没有任何作业要处理,他们仍然会使用大量的系统资源。