我有一个像这样的方法
def abc
// some stuff here
end
handle_asynchronously :abc, queue: :xyz
我想为此创建一个延迟的工作,只有在队列中已有的工作。
我觉得这应该有一个简单的解决方案
谢谢!
答案 0 :(得分:1)
我知道这篇文章已经过时但尚未得到回复。 延迟作业不提供识别作业的方法。 https://github.com/collectiveidea/delayed_job/issues/192
我的建议是你的工作可以检查它是否仍然必须在执行时运行,例如,与数据库值进行比较等。在表中插入作业应该很快,如果你开始检查你可能会丢失对于队列中的某个作业。
如果您仍想在排队时查找重复项,这可能会对您有所帮助。 https://gist.github.com/landovsky/8c505ecab41eb38fa1c2cd23058a6ae3