Module: ServerMonitorModule

Included in:
DangoServerFramework
Defined in:
lib/dango/monitor/server_monitor_module.rb

Overview

メインモジュール(drbで呼び出す用)

Instance Method Summary collapse

Instance Method Details

#_monitor_get_action_stat(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:action_statの取得



119
120
121
122
# File 'lib/dango/monitor/server_monitor_module.rb', line 119

def _monitor_get_action_stat(ret_obj)
  logger.debug "_monitor_get_action_stat:#{ret_obj.inspect}"
  @action_stat
end

#_monitor_get_server_info(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:サーバーからクライアントへのデータ送信



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dango/monitor/server_monitor_module.rb', line 10

def _monitor_get_server_info(ret_obj)
  logger.debug "_monitor_get_server_info"
  
  get_server_info = {
    'server_start_time' => @start_time.strftime("%Y-%m-%d %H:%M:%S"),
    'server_up_time'    => Time.now - @start_time,
    'server_version'    => "#{Dango::VERSION::STRING} p#{Dango::VERSION::PATCH}(r#{RAILS_GEM_VERSION})",
    
    'recv_count'        => @recv_count, # 受信回数
    'send_count'        => @send_count, # 送信回数
    'recv_fail_count'   => @recv_fail_count, # 受信失敗回数
    'send_fail_count'   => @send_fail_count, # 送信失敗回数
    'recv_byte'         => @recv_byte, # 受信バイト数
    'send_byte'         => @send_byte, # 送信バイト数
    
    'mutex_fail_count'  => @mutex_fail_count, # 送信失敗回数
    
#      'log_level'     => log_level_str,
#      'log_file'      => log_file,
#      'log_max_size'  => log_max_size,
#      'log_shift_age' => log_shift_age,
  }
  
  get_server_info
end

#_monitor_get_session_list(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:session_listの取得



105
106
107
108
# File 'lib/dango/monitor/server_monitor_module.rb', line 105

def _monitor_get_session_list(ret_obj)
  logger.debug "_monitor_get_session_list:#{ret_obj.inspect}"
  session_list
end

#_monitor_get_shared(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:shareの取得 key value



89
90
91
92
# File 'lib/dango/monitor/server_monitor_module.rb', line 89

def _monitor_get_shared(ret_obj)
  logger.debug "_monitor_get_shared:ret_obj=#{ret_obj.inspect}"
  shared.to_hash
end

#_monitor_get_socket_list(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:socket_listの取得



111
112
113
114
115
116
# File 'lib/dango/monitor/server_monitor_module.rb', line 111

def _monitor_get_socket_list(ret_obj)
  logger.debug "_monitor_get_socket_list:#{ret_obj.inspect}"
  ret = {}
  socket_list.all_sid.each{|sid| ret[sid] = socket_list[sid].object_id}
  ret
end

#_monitor_mutex_status(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:排他処理一覧



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

def _monitor_mutex_status(ret_obj)
  logger.debug "_monitor_mutex_status"
  ret = []
  
  ObjectSpace.each_object(DangoMutex) do |object|
    ret.push({
      :name    => object.mutex_name,
      :is_lock => object.locked?, 
    })
  end
  
  ret
end

#_monitor_send_system_message(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:接続者全員へメッセージ送信



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/dango/monitor/server_monitor_module.rb', line 44

def _monitor_send_system_message(ret_obj)
  logger.debug "_monitor_send_system_message"
  
  # 全員へ_notice_system_messageを通知
  socket_list.all_sid.each do |sid|
    next if session[:sid] == sid
    send_obj = { "message" => ret_obj["message"] }
    send_notice('_notice_system_message', sid, send_obj)
  end
  
  true
end

#_monitor_server_reload(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:サーバーデータ再読み込み



37
38
39
40
41
# File 'lib/dango/monitor/server_monitor_module.rb', line 37

def _monitor_server_reload(ret_obj)
  logger.debug "_monitor_server_reload"
  @server_reload = true
  true
end

#_monitor_thread_status(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:スレッド一覧



58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/dango/monitor/server_monitor_module.rb', line 58

def _monitor_thread_status(ret_obj)
  logger.debug "_monitor_thread_status"
  ret = []
  
  Thread.list.each do |th|
    ret.push({
      :object_id => th.object_id,
      :name      => th[:_name] ? th[:_name] : "unknown(maybe drb thread)",
    })
  end
  
  ret
end

#_monitor_write_shared(ret_obj) ⇒ Object

drbから呼ばれるメンテナンス:shareの強制書き換え key value



96
97
98
99
100
101
102
# File 'lib/dango/monitor/server_monitor_module.rb', line 96

def _monitor_write_shared(ret_obj)
  logger.debug "_monitor_write_shared:ret_obj=#{ret_obj.inspect}"
  logger.debug "_monitor_write_shared:value=#{eval(ret_obj['value']).inspect}"
  
  shared[ret_obj["key"]] = eval(ret_obj['value'])
  true
end