【问题标题】:How to run rake sneakers:run如何运行 rake 运动鞋:运行
【发布时间】:2020-10-22 09:40:33
【问题描述】:

我是第一次尝试 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。红宝石版本 - 2.3.3。运动鞋版本 - 2.11.0

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

【问题讨论】:

    标签: ruby-on-rails rabbitmq sneakers


    【解决方案1】:

    您应该将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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多