2012-11-28 51 views
0

我有一個使用Resque的Ruby Rails應用程序。Ruby/Rails + Resque throwing「Connection timed out」錯誤

Resuqe守護程序在運行一段時間後出現錯誤,並且崩潰。我的第一個猜測是守護進程通常不會訪問MySQL DB(幾個小時),因此我每5分鐘觸發一次訪問數據庫的隊列項。但我仍然得到:

rake aborted! 
Connection timed out 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:204:in `rescue in io' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:202:in `io' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:210:in `read' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:84:in `block in call' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:183:in `block (2 levels) in process' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:287:in `ensure_connected' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:173:in `block in process' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:248:in `logging' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:172:in `process' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis/client.rb:84:in `call' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis.rb:715:in `block in get' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis.rb:36:in `block in synchronize' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis.rb:36:in `synchronize' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-3.0.2/lib/redis.rb:714:in `get' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/redis-namespace-1.2.1/lib/redis/namespace.rb:257:in `method_missing' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/resque-1.23.0/lib/resque/worker.rb:517:in `job' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/resque-1.23.0/lib/resque/worker.rb:450:in `unregister_worker' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/resque-1.23.0/lib/resque/worker.rb:169:in `rescue in work' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/resque-1.23.0/lib/resque/worker.rb:129:in `work' 
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/resque-1.23.0/lib/resque/tasks.rb:36:in `block (2 levels) in <top (required)>' 
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval' 
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>' 
Tasks: TOP => resque:work 
(See full trace by running task with --trace) 

我把一些日誌文件輸出在我的方法,任何非同步觸發任務,但是看起來好像連接超時而沒有執行我的任何應用程序代碼發生時調用。

下一步該怎麼辦?

回答

0

根據這裏的日誌,與redis的連接丟失,而不是mysql。

+0

redis進程正在運行。重新啓動resque後,所有工作再次。連接到redis丟失的原因是什麼? – KKK

+0

感謝關於redis的提示。檢查安裝的版本,2.0.1,很舊。從他們的網頁安裝最新版本,現在讓我們看看它的「穩定」。 – KKK

+0

這可能是這個版本,它是怎麼回事? – Intrepidd

相關問題