2014-05-08 40 views
1

我有一種情況是,斷開數據庫連接在運行魯弗斯調度

我收集在線設備/臺服務器上,在每天在12爲此,我已經在我的控制器的書面工作。目前我用。在方法進行測試。這裏是我的控制器代碼

require 'rubygems' 
require 'rufus/scheduler' 
require 'net/ssh' 
require 'fileutils' 
require "time" 
require "date" 

scheduler = Rufus::Scheduler.new 

scheduler.at '2014/05/09 9:35:00' do 
    autoupdates = AutoupdatesController.new 
    autoupdates.get_all_online_units 
end 

class AutoupdatesController < ApplicationController  
    def get_all_online_units 
    # logic for getting online units 
    end  
end 

調度程序運行良好,但它斷開我的數據庫連接。此外,我檢查了是否我剛剛初始化調度程序對象,那時它也在剎車。 它給出無法連接到MySQL服務器錯誤。重新啓動服務器後,它工作正常。

對此,我正在使用rails 3.2.11, ruby 1.8.7 and rufus-scheduler 3.0.7 如何解決此問題。

編輯 現在我已經在config/initializer/task_scheduler.rb創建一個單獨的文件。 這裏是我的文件內容

require 'rubygems' 
require 'rufus/scheduler' 
require 'net/ssh' 
require 'fileutils' 
require "time" 
require "date" 

scheduler = Rufus::Scheduler.new 

scheduler.at '2014/05/08 1:25:00' do 
    Rails.logger.info("#-----------In the config/initializer/task_scheduler.rb-----------#") 
end 

然後開始它給我相同類型的錯誤

=> Booting Thin 
=> Rails 3.2.11 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 
/var/lib/gems/1.8/gems/mysql2-0.3.14/lib/mysql2/client.rb:67:in `connect': Can't connect to MySQL server on 'XXXXXXXXXXXXXXXXXXX.com' (4) (Mysql2::Error) 
    from /var/lib/gems/1.8/gems/mysql2-0.3.14/lib/mysql2/client.rb:67:in `initialize' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `mysql2_connection' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `send' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:315:in `new_connection' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:325:in `checkout_new_connection' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:247:in `checkout' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `loop' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:242:in `checkout' 
    from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:239:in `checkout' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:102:in `connection' 
    from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:101:in `connection' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in `retrieve_connection' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:in `retrieve_connection' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in `connection' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/model_schema.rb:308:in `clear_cache!' 
    from /var/lib/gems/1.8/gems/activerecord-3.2.11/lib/active_record/railtie.rb:97:in `_callback_before_3' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:418:in `_run__321316982__prepare__4__callbacks' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:405:in `send' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:405:in `__run_callback' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:385:in `_run_prepare_callbacks' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:81:in `send' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/callbacks.rb:81:in `run_callbacks' 
    from /var/lib/gems/1.8/gems/actionpack-3.2.11/lib/action_dispatch/middleware/reloader.rb:74:in `prepare!' 
    from /var/lib/gems/1.8/gems/actionpack-3.2.11/lib/action_dispatch/middleware/reloader.rb:48:in `prepare!' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/application/finisher.rb:47 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:30:in `instance_exec' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:30:in `run' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:55:in `run_initializers' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:54:in `each' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/initializable.rb:54:in `run_initializers' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/application.rb:136:in `initialize!' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/railtie/configurable.rb:30:in `send' 
    from /var/lib/gems/1.8/gems/railties-3.2.11/lib/rails/railtie/configurable.rb:30:in `method_missing' 
    from /home/pdcadmin/deploy/pdc-dashboard/config/environment.rb:5 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:236:in `load_dependency' 
    from /var/lib/gems/1.8/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require' 
    from /home/pdcadmin/deploy/pdc-dashboard/config.ru:3 
    from /var/lib/gems/1.8/gems/rack-1.4.5/lib/rack/builder.rb:51:in `instance_eval' 
    from /var/lib/gems/1.8/gems/rack-1.4.5/lib/rack/builder.rb:51:in `initialize' 
    from /home/pdcadmin/deploy/pdc-dashboard/config.ru:0:in `new' 
    from /home/pdcadmin/deploy/pdc-dashboard/config.ru:0 

然後我評論從task_scheduler.rb文件下面一些行服務器後是該文件

require 'rubygems' 
require 'rufus/scheduler' 
require 'net/ssh' 
require 'fileutils' 
require "time" 
require "date" 
=begin 
scheduler = Rufus::Scheduler.new 

scheduler.at '2014/05/08 1:25:00' do 
      Rails.logger.info("#-----------In the config/initializer/task_scheduler.rb-----------#") 
end 
=end 

並再次啓動服務器,它工作正常。

編輯2這裏是我的config.ru文件

# This file is used by Rack-based servers to start the application. 

require ::File.expand_path('../config/environment', __FILE__) 
run MyApp::Application 
+0

rufus-scheduler不會斷開與數據庫的連接。看看它的源代碼,你將看不到有關數據庫連接的信息。請重新解釋您的問題,特別是其標題。 – jmettraux

+0

我已更改標題。 – user2622247

+1

文本不清楚。什麼時候發生「無法連接到MySQL錯誤」?你能否添加完整的錯誤跟蹤? – jmettraux

回答

0

也許這可以幫助:http://new-bamboo.co.uk/blog/2010/04/11/automatic-reconnection-of-mysql-connections-in-active-record

您的文字不清晰,什麼時候該 「無法連接到MySQL」 錯誤發生? rufus-scheduler調用你的get_all_online_units時?

+0

在這種方法中,我正在執行一些shell腳本命令。 – user2622247

+0

也我剛纔檢查我刪除了我的工作,並且當時它只是初始化'Rufus :: Scheduler'對象也破壞了。 – user2622247

+0

對不起,你寫的沒有意義。我們無法讀懂你的想法。 http://www.chiark.greenend.org.uk/~sgtatham/bugs.html – jmettraux