【发布时间】:2011-07-12 14:40:57
【问题描述】:
我想在 resque worker 完成后执行一些 ruby 代码。我找到了resque-status gem,它可以让您获取工作人员的状态,但是一旦状态从working 更改为completed,我将如何执行一些代码?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 backgroundworker resque
我想在 resque worker 完成后执行一些 ruby 代码。我找到了resque-status gem,它可以让您获取工作人员的状态,但是一旦状态从working 更改为completed,我将如何执行一些代码?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 backgroundworker resque
这应该在工作人员作业本身的范围之外处理。 通常,您希望在工作人员修改的数据的属性上创建观察者。
例如,如果您的工作人员正在处理传统的 ActiveRecord 模型,您可以在模型中定义一个 after_update 方法(或使用 after_update 方法在该模型上定义一个观察者)。 由您决定在模型中检查什么以确定作业状态(完成、仍在工作等)。
或者,您可以在模型上创建状态属性,然后工作人员将使用传统的 AASM 样式调用更新模型状态。状态转换回调将处理工作->完成的事件。
【讨论】: