Sidekiq 在 Hanami 应用程序上找不到工作人员 class
Sidekiq can't find worker class on Hanami app
我正在尝试使用 sidekiq 在 Hanami 应用程序上异步发送电子邮件。这是我的工人 class:
# lib/myapp/workers/async_mailers.rb
class AsyncMailer
include Sidekiq::Worker
def perform(mail_type)
...
# send mail
...
end
end
但是当 Sidekiq 尝试启动 worker 时失败并给出以下消息:
WARN: NameError: uninitialized constant MailWorker
我是 运行 sidekiq,在我的 Procfile 中使用以下命令:
bundle exec sidekiq -e development -r ./config/environment.rb
sidekiq 似乎找不到我的 lib 文件夹。我是 Hanami 的新手,可能忘记在某处添加一些配置,但我一直无法弄清楚到底该怎么做才能解决这个问题。
在 hanami comunity chat 中进行一些挖掘,我最终发现使用 hanami 调用 sidekiq 的正确方法是使用 boot.rb
文件进行配置。所以你应该 运行 像这样:
bundle exec sidekiq -e development -r ./config/boot.rb
你是对的。只需使用 -r ./config/boot.rb
选项启动 sidekiq 服务器:
https://github.com/hanami/contributors/blob/master/Procfile#L2
我正在尝试使用 sidekiq 在 Hanami 应用程序上异步发送电子邮件。这是我的工人 class:
# lib/myapp/workers/async_mailers.rb
class AsyncMailer
include Sidekiq::Worker
def perform(mail_type)
...
# send mail
...
end
end
但是当 Sidekiq 尝试启动 worker 时失败并给出以下消息:
WARN: NameError: uninitialized constant MailWorker
我是 运行 sidekiq,在我的 Procfile 中使用以下命令:
bundle exec sidekiq -e development -r ./config/environment.rb
sidekiq 似乎找不到我的 lib 文件夹。我是 Hanami 的新手,可能忘记在某处添加一些配置,但我一直无法弄清楚到底该怎么做才能解决这个问题。
在 hanami comunity chat 中进行一些挖掘,我最终发现使用 hanami 调用 sidekiq 的正确方法是使用 boot.rb
文件进行配置。所以你应该 运行 像这样:
bundle exec sidekiq -e development -r ./config/boot.rb
你是对的。只需使用 -r ./config/boot.rb
选项启动 sidekiq 服务器:
https://github.com/hanami/contributors/blob/master/Procfile#L2