【发布时间】:2017-05-16 05:31:52
【问题描述】:
我们的应用拥有许多不同的客户。我们允许客户执行长时间运行的任务,例如导入大型 CSV 文件。目前,我们通过一次只允许每个客户端 1 个导入并在单个作业中运行整个导入来保持公平。
我们希望将大型作业拆分为许多较小的作业,例如将 10,000 行 CSV 导入到 10,000 个 1 行导入中。这样做的问题是,单个长作业可能会使用所有处理能力,从而推迟另一个客户端通常会同时运行并快速完成的短作业。
我们有成千上万的客户,他们每天/每周都会添加。
是否有某种方法可以在客户端之间公平地共享工作人员,而不会破坏具有数千个队列的设置文件? (This question 类似,但并没有真正得到好的答案。)
【问题讨论】:
标签: sidekiq