新的铁轨项目. 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文件夹中的文件将正确加载.