1

所以我注意到resque-lock是关于防止作业排队。但是,如果我希望我的队列被完全填满,但我想在特定情况被锁定时重新排队怎么办。澄清一下:因为我的队列由一堆主机组成(例如 google.com、yahoo.com、yahoo.com 和 apple.com),我不希望两个相同的主机在同时!我怎么做?我得到了resque-lock,但我认为这对解决这个问题没有帮助。

例子:

队列:

google.com
yahoo.com
apple.com
apple.com
stackoverflow.com

工人:

  • 2 名工人正在寻找工作并找到:google.com 和 yahoo.com(好的)
  • 2 名工人正在寻找新工作并找到:apple.com 和 apple.com
  • 不行,将第二个 apple.com 作业重新放入队列并继续

关于如何通过resque获得这种行为的任何想法?我的示例描述了 2 个工作人员的情况,但主要思想是,具有相同主机的两个作业不应该能够同时运行,无论工作人员的数量如何。不允许运行的作业应重新放入队列中。

4

1 回答 1

1

我为此制作了自己的 resque 插件,名为resque::workers::lock

于 2012-07-23T19:53:35.177 回答