【发布时间】:2017-01-01 12:47:54
【问题描述】:
我正在使用运动鞋 gem 来触发 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?
我怎样才能不出错地运行运动鞋
谢谢
【问题讨论】:
-
嗨@HieuPham,谢谢我已将此行添加到文件'config/application.rb'中需要'action_cable'它运行良好
标签: ruby-on-rails rabbitmq worker