Sidekiq - 让一个客户端不使用所有工作人员

时间:2017-05-15 20:22:54

标签: sidekiq

我们有一个拥有许多不同客户的应用。我们允许客户执行长时间运行的任务,例如导入大型CSV文件。目前,我们通过一次允许每个客户端1次导入并在单个作业中运行整个导入来保持公平。

我们希望将大型工作分成许多小型工作,例如将10,000行CSV导入10,000个1行导入。这样做的问题在于,单个长工作可以使用所有处理能力,推迟另一个客户通常会同时运行并快速完成的短工作。

我们有成千上万的客户,每天/每周都会添加。

有没有办法在客户端之间公平地分享工作人员而不用数千个队列攻击设置文件? (This question类似,但并没有真正得到一个好的答案。)

1 个答案:

答案 0 :(得分:0)

将导入作业放入低优先级队列。将短作业放入默认队列,这样就可以在低优先级之前拾取短作业。