我的Rails 4.1.4应用程序在多个Puma实例上运行,我有一个奇怪的问题。该应用程序有一个由SOA架构中的其他系统触发的API。我们有一个高流量的系统,它接到很多电话。如果在启动应用程序时,我们有客户致电我们的端点(称为轨道)中的一个,那么它看起来像一些彪马工人的不正常加载类到内存中,我们开始喜欢把自己的错误:在应用程序启动时ActionNotFound
FATAL -- :
AbstractController::ActionNotFound (The action 'track' could not be found for ArticlesController):
vendor/bundle/ruby/1.9.1/gems/actionpack-4.1.4/lib/abstract_controller/base.rb:131:in `process'
vendor/bundle/ruby/1.9.1/gems/actionview-4.1.4/lib/action_view/rendering.rb:30:in `process'
和...
FATAL -- :
AbstractController::ActionNotFound (The action 'find' could not be found for MatchesController):
vendor/bundle/ruby/1.9.1/gems/actionpack-4.1.4/lib/abstract_controller/base.rb:131:in `process'
vendor/bundle/ruby/1.9.1/gems/actionview-4.1.4/lib/action_view/rendering.rb:30:in `process'
注意,跟踪事件仅在ArticlesController,但事情正在发生的地方,一旦我们进入这种情况,不能作出对任何控制器的请求。
如果我禁用来自客户端的跟踪端点的呼叫,并且我弹出我的应用程序,则一切正常。如果我等到系统启动并再次打开跟踪调用,则一切仍然正常。
只有在应用程序启动时音轨调用正在进行时,才会出现此问题。
我不知道提供哪些信息来帮助诊断此问题。如果有人对如何进行调试有什么预感,我会给这个问题添加更多细节。
只是一个预感,也许尝试着急加载你的控制器:http://blog.plataformatec.com.br/2012/08/eager-loading-for-greater-good/ – DiegoSalazar