如何在resque工作完成后触发一些代码?

时间:2011-07-12 14:40:58

标签: ruby-on-rails ruby ruby-on-rails-3 backgroundworker resque

我想在resque worker完成后执行一些ruby代码。我找到了resque-status gem,可以让你获得一个worker的状态,但是一旦状态从working变为completed,我将如何执行一些代码?

1 个答案:

答案 0 :(得分:1)

这应该在工作人员工作范围之外处理。 通常,您需要在工作程序修改的数据属性上创建观察者。

例如,如果您的工作人员正在处理传统的ActiveRecord模型,则可以在模型中定义after_update方法(或使用after_update方法在该模型上定义观察者)。 由您来决定在模型中检查什么以确定作业状态(完成,仍在工作等)。

或者,您可以在模型上创建一个state属性,worker将使用传统的AASM样式调用更新模型状态。状态转换回调将处理工作 - >完成事件。