2016-08-25 36 views
1

我使用的運動鞋的寶石來觸發的RabbitMQ 的行動,但我不能啓動我的服務觸發Ruby on Rails的錯誤使用運動鞋與RabbitMQ的

我運行命令

WORKERS=MailerWorker rake sneakers:run 

,我得到了誤差

[INFO] 160825 14:26:46 :: LAUNCH worker 
rake aborted! 
NameError: uninitialized constant ApplicationCable::ActionCable 
/home/hdthinh/wthapps/admin-api/app/channels/application_cable/channel.rb:3:in `<module:ApplicationCable>' 
/home/hdthinh/wthapps/admin-api/app/channels/application_cable/channel.rb:2:in `<top (required)>' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/activesupport/lib/active_support/dependencies/interlock.rb:12:in `block in loading' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/activesupport/lib/active_support/concurrency/share_lock.rb:149:in `exclusive' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/activesupport/lib/active_support/dependencies/interlock.rb:11:in `loading' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/railties/lib/rails/engine.rb:476:in `block (2 levels) in eager_load!' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/railties/lib/rails/engine.rb:475:in `each' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/railties/lib/rails/engine.rb:475:in `block in eager_load!' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/railties/lib/rails/engine.rb:473:in `each' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bundler/gems/rails-804f5b3c2af9/railties/lib/rails/engine.rb:473:in `eager_load!' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/gems/sneakers-2.3.5/lib/sneakers/tasks.rb:13:in `block (2 levels) in <top (required)>' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/gems/rake-11.2.2/exe/rake:27:in `<top (required)>' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 
/home/hdthinh/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>' 

我的代碼如下所示

# Rakefile 
require_relative 'config/application' 
require 'sneakers/tasks' 

Rails.application.load_tasks 


# config/initializers/sneakers.rb 
Sneakers.configure({}) 
Sneakers.logger.level = Logger::INFO 

# app/workers/mailer_worker.rb 
require 'sneakers' 
class MailerWorker 
    include Sneakers::Worker 

    from_queue "test.user.login", env: nil 

    def work(raw_post) 
    p "you are successful in this queue! #{raw_post.to_s}" 
    ack! # we need to let queue know that message was received 
    end 
end 

我的RabbitMQ也有消息在交換「test.user.login」

我遵循這個文章,但發生的錯誤 Rails: How to listen to/pull from service or queue?

如何運行的球鞋沒有錯誤

感謝

+0

這是有幫助的http://stackoverflow.com/questions/34396006/uninitialized-constant-actioncableserverconfigurationapplicationcable –

+0

嗨@HieuPham,感謝 我已經加入這一行 需要「action_cable」 到文件「的config/application.rb中' 它運作良好 –

回答

0

錯誤提示ActionCable在您的腳本中不可用,您應該在您的腳本中安裝/需要它。