如何 运行 耙 sneakers:run

How to run rake sneakers:run

我是第一次尝试 Rabbitmq 和运动鞋。当我尝试 运行 我的工人时,我遇到了一些问题。 我在 application.rb

中添加了以下行
    config.active_job.queue_adapter = :sneakers

并且当我 运行 rake --tasks 时,未列出运动鞋

这是我的 sneakers.rb 文件

     require 'sneakers'
     Sneakers.configure  connection: Bunny.new(
      addresses: 'localhost:5672',
      username: 'guest',
      password: 'guest',
      vhost: '/',
      logger: Rails.logger
     ),
     exchange: 'sneakers',
     exchange_type: :direct,
     workers: 1,
     env: ENV['RAILS_ENV'], 
     durable: true,
     ack: true,
     heartbeat: 30
    Sneakers.logger = Rails.logger
    Sneakers.logger.level = Logger::WARN

Rails 版本 - 4.2.4。 Ruby 版本 - 2.3.3。运动鞋版本 - 2.11.0

我被困在这里了。任何解决方案或任何参考文档也会有所帮助。

您应该将 require 'sneakers/tasks' 添加到您的 Rakefile 中,一旦您这样做,rake -T 将显示运动鞋任务。要开始工作,您可以:

rake sneakers:run       # Start work (set $WORKERS=Klass1,Klass2)

另外我 运行 遇到了一个 st运行ge 问题:运动鞋 rake 任务有时会出错并显示“找不到工人”,不确定它是否是 Rails 自动加载问题或不,但解决方案是创建您自己的另一个 rake 任务,在其中实例化每个工作人员 类,然后调用 sneakers:run 任务:

# lib/tasks/amqp.rake
desc "Run all of your sneakers tasks"
task :amqp => :environment do
  MyRandomWorker
  MyOtherSneakersWorker
  Rake::Task["sneakers:run"].invoke
end