【问题标题】:Ensure to run code after rails `delayed job` fails or successess确保在 rails `delayed job` 失败和成功后运行代码
【发布时间】:2017-02-03 17:11:35
【问题描述】:

有什么方法可以确保某些代码在delayed job 失败或成功后运行事件,就像我们可以在异常处理中编写ensure 块一样?

【问题讨论】:

  • 您在使用作业吗?或者你像user.delay.send_email一样使用它?
  • @LolWalid 是的,我正在使用.delay 调用您指定的作业方法。 user.delay.send_email
  • 你看到我的回答了吗?为什么不将user.delay.send_email 放入它自己的方法并在那里使用ensure
  • 实际不,你不能这样做,你必须定义一个调用 send_email 的作业。或者编写一个方法,确保在发送电子邮件后执行操作并延迟此方法。

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


【解决方案1】:

以下方法有什么问题?

def delayed_job_method
  do_the_job
ensure
 something
end

【讨论】:

  • 我认为这种语法仅适用于 begin-rescue 块。还是个新手。将尝试您的解决方案.. :)
  • @Swaps 好吧,我刚刚考虑了一下 - 我的方法将确保在您将作业排入队列之后,而不是在它成功或失败之后,立即完成某些事情。
猜你喜欢
  • 1970-01-01
  • 2021-03-16
  • 2019-12-20
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2012-06-13
相关资源
最近更新 更多