Sidekiq无法在Hanami app上找到工人阶级

时间:2017-08-10 12:44:58

标签: ruby sidekiq hanami

我试图使用sidekiq在Hanami应用上异步发送电子邮件。这是我的工人阶级:

# lib/myapp/workers/async_mailers.rb

class AsyncMailer
  include Sidekiq::Worker

  def perform(mail_type)
    ...
    # send mail
    ...
  end
end

但是当Sidekiq试图启动工作时它会失败并给出以下信息:

WARN: NameError: uninitialized constant MailWorker

我在我的Procfile中使用以下命令运行sidekiq:

bundle exec sidekiq -e development -r ./config/environment.rb

似乎sidekiq无法找到我的lib文件夹。我对Hanami很新,可能忘了在某个地方添加一些配置,但我还是无法弄清楚要做什么才能解决这个问题。

2 个答案:

答案 0 :(得分:3)

hanami comunity chat中进行一些挖掘,我最终发现用hanami调用sidekiq的正确方法是使用boot.rb文件进行配置。所以你应该像这样运行它:

bundle exec sidekiq -e development -r ./config/boot.rb

答案 1 :(得分:0)

你是对的。只需使用-r ./config/boot.rb选项启动sidekiq服务器:

https://github.com/hanami/contributors/blob/master/Procfile#L2