Загляните в камень resque-loner .Это позволяет сделать очереди заданий уникальными.Все, что вам нужно сделать, - это включить Resque :: Plugins :: UniqueJob в классы заданий, которые вы хотите сделать уникальными.
class CacheSweeper
include Resque::Plugins::UniqueJob
class << self
def perform(project_name)
# some code
end
end
end