我有一组Resque队列,按优先级排列。对于最低优先级队列上的所有作业,它们没有参数,稍后的运行将取代任何先前的运行 - 例如他们正在与外部服务同步数据。因此,创建一个包含这些作业的多个副本的积压是没有意义的 - 连续三次运行它不会增加任何价值。
但是在繁忙时期,由于工作人员忙于优先级较高的工作,我们确实会得到积压(仅限此队列)。
我是否可以通过阻止冗余作业排在第一位来阻止此积压?
答案 0 :(得分:0)
是的,有宝石可以做到这一点。 (AFAICT,他们通过使用其参数列表对作业类进行哈希处理并在Redis中分别维护一组已经排队的")
请参阅https://github.com/resque/resque-loner和https://github.com/neighborland/resque_solo。