如何设置resque作业的超时时间
问题描述:
我需要实现一项功能,如果resque作业在特定时间内未得到处理,该功能可以让resque作业超时。如何设置resque作业的超时时间
因此,我们可以说创建了一份工作,但由于排队太长和/或没有足够的工作人员关闭,因此无法在一个小时内处理。
我不想在这种情况下删除工作......最好的办法是什么?也许有一个配置参数,我正在监督或第三方宝石?
感谢
答
我不知道是否有一种方法在默认情况下做到这一点的Resque,但它不会是很难做到的自己。
在你的工作做这样的事情:
def perform(id, queued_at)
return false unless Time.parse(queued_at) >= 1.hour.ago
...
end
而要排队工作,做到:Resque.enqueue(MyJobClass,object.id,DateTime.now)。第一行将自动转储作业,并在作业排队时间超过一小时前阻止作业执行。
https://rubygems.org/gems/resque-timeout是应该超时工作的宝石。不知道是否删除 – ScottJShea 2012-03-05 01:29:00
已经检查...它杀死长时间运行的resque任务。所以不是我正在寻找的东西:( – Matthias 2012-03-05 01:30:48