2011-08-16 63 views
2

我正在转换工作应用程序以通过resque处理传入请求。这些工作被正确提交给resque。当工作人员抓取任务并开始执行时,问题就开始了。resque未正确加载rails环境

在我的应用程序中,当我尝试引用其中一个字段时,我的某个模型出现错误。 class关键字< ActiveRecord :: Base 该调用是'Keyword.first.rule'这将返回“尝试调用私有方法”。

的问题就走了,当我加入下面的代码片段的工人叫之前我的应用程序

def self.perform(phone_number,message,short_code) 
    k = Keyword.first 
    k.rule 
    Parser.new.parse_request(phone_number,message,short_code) 
end 

后,我得到过这个问题其他随机误差开始对使用前正常工作的代码此起彼伏。 ex casecmp是无效的方法。 我相信这不是我的代码的问题,因为当我从轨道控制台调用相同的方法时,它工作得很好。

这是我的设置 - 红宝石1.8.7(2010-01-10 PATCHLEVEL 249)[x86_64的Linux的] - 宝石1.3.5 - 导轨2.3.8 - resque 1.17.1 - Ubuntu的10.04 0.3 LTS

工人

class ProcessMo 
    @queue = :incoming_messages_queue 

    def self.perform(phone_number,message,short_code) 
    Parser.new.parse_request(phone_number,message,short_code) 
    end 

end 

resque.rake

require "resque/tasks" 

task "resque:setup" => :environment 

回答

0

从错误消息,它听起来像以下代码段之前:

private