2011-12-29 47 views
0

我给resque一个尝试,但不知道resque工人实例的生命周期。可以说我有任务的设置方式如下:何时resque worker作业在ActiveRecord对象生命周期中停止?

class User 

    def self.start_job(str) 
    Resque.enqueue(Job, str) 
    end 

end 

class Job 

    def self.perform(str) 
    Message.create(:user => str.split(" ")[0], 
        :message => str.split(" ")[1]) 
    end 

end 

创建消息后,有它调用另一个长时间运行的任务after_create钩:

class Message < ActiveRecord::Base 

    after_create (or after_commit) :do_a_ridiculous_long_task 

    def do_a_ridiculous_long_task 
    do_something 
    end 

end 

在消息创建完成后,resque worker的生命周期是否结束?还是直到消息模型中的after_create方法完成后才继续?换句话说,resque worker跟ActiveRecord对象的生命周期有多远?

回答

1

原来,resque工作人员不负责after_create它会触发的事件。这些事件将传递给rails实例。

下面是答案:https://github.com/defunkt/resque/issues/483#issuecomment-3396215

+0

虽然这在理论上可以回答的问题,[这将是优选的](http://meta.stackexchange.com/q/8259)以包括回答的主要部分这里,并提供链接供参考。 – oers 2012-01-31 10:51:40

+0

感谢提醒,只是做了编辑。 – Bek 2012-03-18 22:01:07