Rails:这个模型对于工作队列是否有用?

时间:2013-09-29 11:57:54

标签: ruby-on-rails model queue worker

有问题的代码:

class Model < ActiveRecord::Base

    require 'Library'
    AN_ARRAY = [ 1, 2 ]
    THING = Classname.new.thing()

    def self.perform(param)
        # do stuff using THING, i.e. THING.do(something)
        do_things(param)
    end

    def self.do_things(param)
        # do stuff with AN_ARRAY and/or THING
    end

end

我不太确定Rails如何处理模型。前三个语句只执行一次吗?是否只有一个THING,或者可能会有很多THING?如果我将工作人员排队以执行self.perform(),只要THING的状态没有改变,事情就会好起来吗?我应该在功能本身中初始化THING吗?感谢。

1 个答案:

答案 0 :(得分:0)

加载类时,所有行都由ruby评估一次:

以下两行定义了两个常量,因为它们以大写字母开头。这意味着只有一个THING和一个AN_ARRAY。

    AN_ARRAY = [ 1, 2 ]
    THING = Classname.new.thing()

下面的def语句也会被评估一次,最后定义两个类方法:

    def self.perform(param)
        # do stuff using THING, i.e. THING.do(something)
        do_things(param)
    end

    def self.do_things(param)
        # do stuff with AN_ARRAY and/or THING
    end

因此,这些方法应该在队列工作者中按预期工作。

相关问题