我在resque worker中的包含模块中调用方法时遇到问题.在下面的示例中,当我尝试在worker(在TestLib模块中)中调用say方法时,我一直得到未定义的方法错误.我已经将代码简化为基础知识以说明问题:
调节器
(/app/controllers/test_controller.rb)
class TestController < ApplicationController def testque Resque.enqueue( TestWorker,"HI" ) end end
图书馆
(/lib/test_lib.rb)
module TestLib def say( word ) puts word end end
工人
(/workers/test_worker.rb)
require 'test_lib' class TestWorker include TestLib @queue = :test_queue def self.perform( word ) say( word ) #returns: undefined method 'say' for TestWorker:Class TestLib::say( word ) #returns: undefined method 'say' for TestLib::Module end end
Rake文件
(resque.rake)
require "resque/tasks" task "resque:setup" => :environment
我正在使用以下命令运行resque:rake environment resque:work QUEUE =’*’
宝石:
铁轨(3.0.4)
redis(2.2.2)
redis-namespace(1.0.3)
resque(1.19.0)
服务器:
Nginx的/ 1.0.6
任何人都对那里发生的事情有任何想法?