Ruby on rails 3 回复:飞行狮身人面像和赛德基克

Ruby on rails 3 回复:飞行狮身人面像和赛德基克,ruby-on-rails-3,indexing,thinking-sphinx,sidekiq,delta,Ruby On Rails 3,Indexing,Thinking Sphinx,Sidekiq,Delta,恐怕我已经到了一个完全无助的地步:飞行狮身人面像和赛德基。Sidekiq和FS似乎无法在生产中进行通信 我在TS3中,使用Sidekiq运行增量索引-它在开发中非常有效,昨天在生产中实际工作了一段时间。但今天当我跑步时: heroku run bundle exec sidekiq -q ts_delta 我得到以下错误: 未定义的局部变量或方法“decode_frame” WebSocket::Frame::传入::服务器:0x000000048cac40 最后是一系列的: 试图断开连接。。

恐怕我已经到了一个完全无助的地步:飞行狮身人面像和赛德基。Sidekiq和FS似乎无法在生产中进行通信

我在TS3中,使用Sidekiq运行增量索引-它在开发中非常有效,昨天在生产中实际工作了一段时间。但今天当我跑步时:

heroku run bundle exec sidekiq -q ts_delta
我得到以下错误:

未定义的局部变量或方法“decode_frame”

WebSocket::Frame::传入::服务器:0x000000048cac40 最后是一系列的:

试图断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。未连接尝试断开连接。。。不相连

我可以提供更多关于这个的信息,这样我们就可以一起解决它-我在我的电脑前一直到今天凌晨2点左右(这已经是漫长的一天),并且可以提供任何必要的信息

我只是不想马上就被信息淹没

祝你好运

劳伦特

PS:包括来自new relick的错误报告:

action.rb: 22:in sleep' …flying-sphinx-e1395e724afb/lib/flying_sphinx/action.rb: 22:inblock in perform'
/usr/local/lib/ruby/1.9.1/timeout.rb: 58:in timeout' …flying-sphinx-e1395e724afb/lib/flying_sphinx/action.rb: 15:inperform'
…flying-sphinx-e1395e724afb/lib/flying_sphinx/action.rb: 5:in perform' …ng-sphinx-e1395e724afb/lib/flying_sphinx/controller.rb: 37:inindex'
…/lib/thinking_sphinx/deltas/sidekiq_delta/delta_job.rb: 14:in perform' …uby/1.9.1/gems/sidekiq-2.10.1/lib/sidekiq/processor.rb: 49:inblock (3 levels) in process'
….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 109:in call' ….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 109:inblock in invoke'
….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 111:in block in invoke' …idekiq-2.10.1/lib/sidekiq/middleware/server/timeout.rb: 14:incall'
….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 111:in block in invoke' …-2.10.1/lib/sidekiq/middleware/server/active_record.rb: 6:incall'
….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware//app/vendor/bundle/ruby/1.9.1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rbchain.rb: 111:in block in invoke' …kiq-2.10.1/lib/sidekiq/middleware/server/retry_jobs.rb: 50:incall'
….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 111:in block in invoke' …idekiq-2.10.1/lib/sidekiq/middleware/server/logging.rb: 11:inblock in call'
…/ruby/1.9.1/gems/sidekiq-2.10.1/lib/sidekiq/logging.rb: 22:in with_context' …idekiq-2.10.1/lib/sidekiq/middleware/server/logging.rb: 7:incall'
….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 111:in block in invoke' ….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 114:incall'
….1/gems/sidekiq-2.10.1/lib/sidekiq/middleware/chain.rb: 114:in invoke' …uby/1.9.1/gems/sidekiq-2.10.1/lib/sidekiq/processor.rb: 48:inblock (2 levels) in process'
…uby/1.9.1/gems/sidekiq-2.10.1/lib/sidekiq/processor.rb: 87:in stats' …uby/1.9.1/gems/sidekiq-2.10.1/lib/sidekiq/processor.rb: 47:inblock in process'
…uby/1.9.1/gems/celluloid-0.12.4/lib/celluloid/calls.rb: 23:in call' …uby/1.9.1/gems/celluloid-0.12.4/lib/celluloid/calls.rb: 23:inpublic_send'
…uby/1.9.1/gems/celluloid-0.12.4/lib/celluloid/calls.rb: 23:in dispatch' …by/1.9.1/gems/celluloid-0.12.4/lib/celluloid/future.rb: 18:inblock in initialize'
…1/gems/celluloid-0.12.4/lib/celluloid/internal_pool.rb: 48:in call' …1/gems/celluloid-0.12.4/lib/celluloid/internal_pool.rb: 48:inblock in create

通过支持渠道直接与Laurent讨论了此问题。这里的主要问题是websocket(由飞行中的狮身人面像宝石使用)使用autoload,这与Sidekiq不能很好地配合。将生产Rails环境切换为线程安全环境必须在autoload中进行一些调整,因为它解决了这个问题


因此:如果您使用Sidekiq,请确保您的环境已启用threadsafe,更好的是,不要使用autoload(Matz计划将其删除)。

一如既往地提供卓越的客户服务。我对这种宝石的推荐还不够。