Ruby on rails 使用Sidekiq和模块命名模式时的循环依赖性问题

Ruby on rails 使用Sidekiq和模块命名模式时的循环依赖性问题,ruby-on-rails,ruby,autoload,sidekiq,Ruby On Rails,Ruby,Autoload,Sidekiq,早上好,我们在使用Sidekiq处理队列时遇到了一些恼人的问题。这个问题似乎是在我们第一次在生产环境中执行Sidekiq(急切加载资源)时发生的 基本上,我们将类在模块中分离,以获得更好的命名模式 这是发生问题时的一个示例模块 module MyApp module APIIntegration class Client def driver @driver ||= MyApp::APIIntegration::Driver.new

早上好,我们在使用Sidekiq处理队列时遇到了一些恼人的问题。这个问题似乎是在我们第一次在生产环境中执行Sidekiq(急切加载资源)时发生的

基本上,我们将类在模块中分离,以获得更好的命名模式

这是发生问题时的一个示例模块

module MyApp
  module APIIntegration
    class Client          
       def driver
         @driver ||= MyApp::APIIntegration::Driver.new
       end  
    end
  end
end 
我们得到“自动加载常量MyApp::APIIntegration::Driver时检测到循环依赖项”

知道为什么会这样吗?我们是否应该通过调用驱动程序而不是完全限定的名称来引用驱动程序?我可以试着重现这个问题吗

欢迎您提出任何建议,非常感谢

应该是这样的

module MyApp
  module APIIntegration
    class Client          
       def driver
         @driver ||= Driver.new
       end  
    end
  end
end 

能否显示驱动程序模块/类的代码以及放置这些文件的路径?这不是循环依赖性问题。这是因为模块的命名和文件的位置,它们都处于同一级别。类似于/lib/my_app/api_integration/client.rb和/lib/my_app/api_integration/driver.rb1<代码>模块APIIntegration应为
模块APIIntegration
2<代码>@driver | |=MyApp::apintegration::driver.new到
@driver | |=driver.new