ruby-on-rails - 如何创建独特的延迟工作

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

我有一个这样的方法

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

只有当队列中没有一个时,我才想为此创建一个延迟作业。

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

谢谢!

最佳答案

我知道这个帖子很旧,但还没有人回复。 延迟作业不提供识别作业的方法。 https://github.com/collectiveidea/delayed_job/issues/192

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

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

关于ruby-on-rails - 如何创建独特的延迟工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23962224/

相关文章:

ruby-on-rails - 配置 RubyMine 远程连接到 Heroku PostgreSQL

ruby-on-rails - Windows 上的 Rails 测试错误 "UNIXServer is required (LoadError)"

ruby-on-rails - has_one belongs_to association autosave => true 不保存

ruby - 选择第二个下拉值 Watir-Webdriver

ruby-on-rails - 使用 Spree in rails 为供应商创建索引页面

ruby-on-rails - Rails 中的非标准多元化

ruby - 在 Slim 模板中,不同行的 HTML 注释在同一行呈现

ruby-on-rails - Rails 多种帖子类型 : nested forms and complex association

ruby-on-rails - Rails - 一种形式到两种模型

sql - ActiveRecord 查询返回对象两次(同一对象的 2 个实例)