如何创建独特的延迟工作

时间:2014-05-30 19:34:57

标签: ruby-on-rails ruby ruby-on-rails-4 delayed-job

我有一个像这样的方法

  def abc
     // some stuff here
  end
  handle_asynchronously :abc, queue: :xyz

我想为此创建一个延迟的工作,只有在队列中已有的工作。

我觉得这应该有一个简单的解决方案

谢谢!

1 个答案:

答案 0 :(得分:1)

我知道这篇文章已经过时但尚未得到回复。 延迟作业不提供识别作业的方法。 https://github.com/collectiveidea/delayed_job/issues/192

我的建议是你的工作可以检查它是否仍然必须在执行时运行,例如,与数据库值进行比较等。在表中插入作业应该很快,如果你开始检查你可能会丢失对于队列中的某个作业。

如果您仍想在排队时查找重复项,这可能会对您有所帮助。 https://gist.github.com/landovsky/8c505ecab41eb38fa1c2cd23058a6ae3