我需要实现一项功能,如果在一定时间内没有处理它们,就可以使resque作业超时。
因此,假设创建了一个作业但在一小时内无法处理,因为队列太长和/或没有足够的工作人员将其关闭。
在这种情况下,我不想删除这项工作......最好的办法是什么?也许有一个我正在监督的配置参数或第三方宝石?
由于
答案 0 :(得分:1)
我不知道默认情况下是否有办法在Resque中执行此操作,但这并不难做到。
在你的工作中做这样的事情:
def perform(id, queued_at)
return false unless Time.parse(queued_at) >= 1.hour.ago
...
end
要排队作业,请执行:Resque.enqueue(MyJobClass,object.id,DateTime.now)。第一行将自动转储作业,如果排队的时间超过一小时,则会阻止它执行。