我对sidekiq有一些加载问题。
我在“非标准”rails文件夹中有一个模型,该模型称为“OpenQuery”,位于“app / models / queries”下。
传统上,Rails规定如果模型放在“查询”目录下,那么模型也应该嵌套在“查询”下(即Queries::OpenQuery
)。
出于我自己的原因,我不愿意这样做,而是希望将模型保留在根范围内。
我也更愿意通过将它放入以下来避免急切加载这个类:
config.eager_load_paths += Dir["#{config.root}/app/models/queries"]
。
我所做的是另一个模型(查询)我只是执行require 'queries/open_query'
。
Rails没有给我任何问题,一切都按预期工作。
但是当我尝试启动sidekiq进程时,我收到以下警告:warning: already initialized constant OpenQuery::QUESTION_FIELDS
。
我知道Rails 4只会加载标准rails文件夹中的文件:“app / models”,“app / controllers”等。
我的问题是,sidekiq如何加载代码? 它是否对项目中的所有文件执行急切加载,包括非标准Rails文件夹中的文件? (即“app / models / queries”)
如果没有,为什么我的open_query.rb文件在sidekiq中加载两次,而在启动rails服务器时只加载一次?
我正在使用Ruby 2.0.0和Rails 4.1顺便说一句。