Class: DangoMonitorClient

Inherits:
DangoClientFramework show all
Defined in:
lib/dango/monitor/dango_monitor_client.rb

Overview

モニター用のdangoクライアントクラス

Constant Summary collapse

ConnTimeout =
6

Constants inherited from DangoClientFramework

DangoClientFramework::HeartBeatSendIntervalSec, DangoClientFramework::SendReceiveSleepIntervalSec

Constants included from DangoFrameworkModule

DangoFrameworkModule::CommMaxDigit, DangoFrameworkModule::DefaultEncodeType, DangoFrameworkModule::EncodeTypeJSON, DangoFrameworkModule::EncodeTypeMarshal, DangoFrameworkModule::EncodeTypeYAML, DangoFrameworkModule::MaxLenRecv, DangoFrameworkModule::MaxLenSend, DangoFrameworkModule::ReadTimeoutSec

Instance Attribute Summary collapse

Attributes inherited from DangoClientFramework

#sid

Instance Method Summary collapse

Methods inherited from DangoClientFramework

#dango_client_close, #dango_client_notice_shared, #dango_client_notice_shared_init, #dango_client_receive_decrypt, #dango_client_send_encrypt, #dango_heart_beat_thread_init, #dango_receive__heart_beat, #dango_receive__notice_sid, #dango_receive__notice_system_message, #dango_session_closed, #method_missing, #receive_decrypt, #send_action, #send_action_return_notice, #send_encrypt, #send_return_shared, #send_return_shared_init

Methods included from DangoFrameworkModule

#dango_receive_data, #dango_send_data, #debug_print, #error_print

Methods included from DangoLoggerModule

#logger

Methods included from ErrorMessage

#error_message

Constructor Details

#initializeDangoMonitorClient

Returns a new instance of DangoMonitorClient.



15
16
17
18
19
# File 'lib/dango/monitor/dango_monitor_client.rb', line 15

def initialize()
  @env = ENV['RAILS_ENV'] || 'development'
  config = YAML.load(open("#{RAILS_ROOT}/config/dango/#{@env}.yml", "rb"){|fh| fh.read})
  super(@env, config)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class DangoClientFramework

Instance Attribute Details

#is_session_closedObject (readonly)

アクセサの定義 読み込みのみ



32
33
34
# File 'lib/dango/monitor/dango_monitor_client.rb', line 32

def is_session_closed
  @is_session_closed
end

Instance Method Details

#dango_client_initObject

起動処理



24
25
26
27
28
# File 'lib/dango/monitor/dango_monitor_client.rb', line 24

def dango_client_init
  # ログ出力情報
  @connection_client_log_file = "#{RAILS_ROOT}/log/dango_monitor_#{@env}.log"
  @connection_client_log_level = Logger::DEBUG
end

#get_server_infoObject

サーバーの情報取得



52
53
54
# File 'lib/dango/monitor/dango_monitor_client.rb', line 52

def get_server_info
  get_server_info_common("get_server_info")
end

#get_server_info_common(monitor_action_name) ⇒ Object

情報取得系の処理を整理したもの



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/dango/monitor/dango_monitor_client.rb', line 35

def get_server_info_common(monitor_action_name)
  logger.debug "DangoMonitorClient:#{monitor_action_name}:#{ENV['RAILS_ROOT']}"
  begin
    ret_obj = send_action_return_notice("_monitor_#{monitor_action_name}", {})
    logger.debug "get_server_info_common:ret_obj=#{ret_obj.inspect}"
    raise("code is not 0 (faild). :code=#{ret_obj['code']}") if ret_obj['code'] != 0
    return(ret_obj[monitor_action_name])
  rescue DangoFrameworkConnectionException
    raise("#{monitor_action_name} Connection error")
  rescue DangoFrameworkTimeoutException
    raise("#{monitor_action_name} Timeout error")
  ensure
    dango_client_close
  end
end

#get_session_listObject

session_listの情報取得



62
63
64
# File 'lib/dango/monitor/dango_monitor_client.rb', line 62

def get_session_list
  get_server_info_common("get_session_list")
end

#get_sharedObject

sharedの情報取得



57
58
59
# File 'lib/dango/monitor/dango_monitor_client.rb', line 57

def get_shared
  get_server_info_common("get_shared")
end

#get_socket_listObject

socket_listの情報取得



67
68
69
# File 'lib/dango/monitor/dango_monitor_client.rb', line 67

def get_socket_list
  get_server_info_common("get_socket_list")
end

#send_system_message(message = "") ⇒ Object

システムメッセージの送信



88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/dango/monitor/dango_monitor_client.rb', line 88

def send_system_message(message = "")
  logger.debug "DangoMonitorClient:send_system_message"
  begin
    ret_obj = send_action_return_notice('_monitor_send_system_message', {:message=>message})
    raise("code is not 0 (faild). :code=#{ret_obj['code']}") if ret_obj['code'] != 0
    return(true)
  rescue DangoFrameworkConnectionException
    raise("monitor_send_system_message Connection error")
  rescue DangoFrameworkTimeoutException
    raise("monitor_send_system_message Timeout error")
  ensure
    dango_client_close
  end
end

#server_reloadObject

サーバーのデータリロード



72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/dango/monitor/dango_monitor_client.rb', line 72

def server_reload
  logger.debug "DangoMonitorClient:server_reload"
  begin
    ret_obj = send_action_return_notice('_monitor_server_reload', {})
    raise("code is not 0 (faild). :code=#{ret_obj['code']}") if ret_obj['code'] != 0
    return(true)
  rescue DangoFrameworkConnectionException
    raise("monitor_server_reload Connection error")
  rescue DangoFrameworkTimeoutException
    raise("monitor_server_reload Timeout error")
  ensure
    dango_client_close
  end
end