如何运行耙式运动鞋:运行

问题描述

我第一次尝试使用Rabbitmq和运动鞋。当我尝试雇用工人时,我面临一些问题。 我在application.rb

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

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

这是我的运动鞋.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)

我也遇到了一个奇怪的问题:sneaker rake 任务有时会出错,并显示“没有找到工人”,不确定是否是 Rails 自动加载问题,但解决方案是创建另一个你自己的 rake 任务在哪里你实例化你的每个工人类,然后调用运动鞋:运行任务:

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