Sidekiq优于Resqueue的一个好处是它可以在同一个进程中运行多个作业。然而,缺点是我无法弄清楚如何强制一组并发作业在不同的进程中运行。
这是我的用例:说我必须生成64M行数据,并且我在亚马逊EC2实例上有8个vCPU。我想将任务分成8个并发作业,每个作业产生8M行。问题是,如果我运行8个sidekiq进程,有时sidekiq将决定在同一进程中运行2个或更多作业,因此它不会使用所有8个vCPU并且需要更长时间才能完成。有没有办法告诉sidekiq哪个工人使用或强迫它在一个组中平均分配工作?
答案 0 :(得分:2)
答案是你不能轻易,按设计。专业化是导致SPOF的原因。
除非产生的I / O粉碎机器,否则我可能会做后者。