Railsでマルチスレッドを使用した場合に RuntimeError: Circular dependency detected while autoloading constant というエラーがでる

Railsでマルチスレッドを使用してActveRecordのクエリを並列に実行しようとしたら『RuntimeError: Circular dependency detected while autoloading constant …』というようなエラーがでました。

エラーの詳細は

RuntimeError (Circular dependency detected while autoloading constant DayRange):
  app/models/stock.rb:27:in `get_year_data'
  app/controllers/api_controller.rb:122:in `block in graph_data'

のようになっていました。

Railsでは一度読み込んだファイルをキャッシュして2回目は読み込まないようにしているようなのですが、マルチスレッドを使用すると読み込んでいないファイルを同時に読み込みに行った場合に、片方のスレッドが読み込んだあともう片方のスレッドがもう読み込み済みとなって読み込まずエラーになるようです。

# config/application.rb

module DataAnalysis
  class Application < Rails::Application
    config.eager_load_paths += %W(#{config.root}/app/models/stock.rb)
  end
end

参照

http://qiita.com/tjnet/items/cecf9eae6e34a057e4d8