当前位置 : 主页 > 编程语言 > ruby >

ruby-on-rails – 未初始化的恒定sidekiq工作者

来源:互联网 收集:自由互联 发布时间:2021-06-23
新的铁轨项目. Rails 5.0.2 Sidekiq 4.2.10 我运行了rails g sidekiq:worker deposit_collector,然后在perform方法中填写了我需要的代码. 为了测试我登录到rails控制台并键入:DepositCollector.perform_async并且
新的铁轨项目.

Rails 5.0.2
Sidekiq 4.2.10

我运行了rails g sidekiq:worker deposit_collector,然后在perform方法中填写了我需要的代码.

为了测试我登录到rails控制台并键入:DepositCollector.perform_async并且我收到错误:

NameError: uninitialized constant DepositCollectorWorker

工作者应该在app / workers /文件夹中.我以前在几个项目中使用过sidekiq,但从未碰到过这个问题.

默认情况下,Rails将包含 autoload paths列表中app文件夹的所有子目录.您可以在控制台中查看自动加载路径列表:

puts ActiveSupport::Dependencies.autoload_paths

但是Rails只在启动时查找这些路径.因此,当您添加新文件夹(如app / workers)时,重新启动Rails控制台是不够的.您需要退出Rails控制台并使用以下命令停止Spring Application Preloader:

spring stop

然后再次启动Rails控制台,app / workers文件夹中的文件将正确加载.

网友评论