dango 0.0.26 → 0.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/dango/client_framework.rb +0 -2
- data/lib/dango/server_framework.rb +31 -2
- data/lib/dango/tasks/dango_rake.rb +4 -2
- data/lib/dango/version.rb +1 -1
- metadata +11 -2
@@ -40,8 +40,6 @@ class DangoClientFramework
|
|
40
40
|
@connection_client_host = @config['network']['host'] || 'localhost'
|
41
41
|
@connection_client_port = @config['network']['port'] || 15000
|
42
42
|
|
43
|
-
@connection_client_host = 'localhost' # 未定義時にこのホスト名でサーバー開始
|
44
|
-
@connection_client_port = 15000 # 未定義時にこのポートでサーバー開始
|
45
43
|
@connection_client_log_file = "" # 未定義時にこのログファイル名を使う
|
46
44
|
@connection_client_log_level = Logger::DEBUG # 未定義時にこのログレベルになる
|
47
45
|
|
@@ -27,6 +27,7 @@ class DangoServerFramework
|
|
27
27
|
SendTimeoutSec = 10.0 # データ送受信時の送信のタイムアウト秒数
|
28
28
|
HeartBeatIntervalSec = 60.0 # S=>Cのheart beatの送信間隔秒数
|
29
29
|
HeartBeatResponseWaitSec = 20.0 # S=>Cのheart beatの返信待ち秒数
|
30
|
+
GCIntervalSec = 5.0 # GCの発生タイミング
|
30
31
|
|
31
32
|
|
32
33
|
class DangoGServer < GServer
|
@@ -96,8 +97,9 @@ class DangoServerFramework
|
|
96
97
|
socket_list_init() # ソケット一覧を初期化
|
97
98
|
mutex_socket_list_init() # ソケット毎用のmutexを初期化
|
98
99
|
@mutex_proc_thread = Mutex.new # スレッドが同時起動しないようにするためのMutex
|
99
|
-
dango_server_init()
|
100
|
+
dango_server_init() # 初期設定読み込み
|
100
101
|
heart_beat_thread_start() # ハートビートスレッドの開始
|
102
|
+
gc_thread_start() # GCスレッドの開始
|
101
103
|
|
102
104
|
@mutex_send_response = Mutex.new # 送信レスポンス用のMutex
|
103
105
|
@arr_send_response = [] # 送信レスポンス用のキャッシュ
|
@@ -107,6 +109,10 @@ class DangoServerFramework
|
|
107
109
|
@connection_server_max_connections)
|
108
110
|
@gserver.audit = true # Turn logging on.
|
109
111
|
|
112
|
+
GC.enable
|
113
|
+
GC.start
|
114
|
+
GC.disable
|
115
|
+
|
110
116
|
begin
|
111
117
|
@gserver.start
|
112
118
|
rescue Exception
|
@@ -146,7 +152,9 @@ class DangoServerFramework
|
|
146
152
|
puts "-- stopped server"
|
147
153
|
|
148
154
|
# GCを行う
|
149
|
-
GC.
|
155
|
+
GC.enable
|
156
|
+
GC.start
|
157
|
+
GC.disable
|
150
158
|
|
151
159
|
# サーバーファイルを読み直し
|
152
160
|
puts "-- reload classes"
|
@@ -349,6 +357,7 @@ class DangoServerFramework
|
|
349
357
|
@send_timeout_sec = @config['server']['send_timeout_sec'] || SendTimeoutSec
|
350
358
|
@herat_beat_interval_sec = @config['server']['heart_beat_interval_sec'] || HeartBeatIntervalSec
|
351
359
|
@heart_beat_response_wait_sec = @config['server']['heart_beat_response_wait_sec'] || HeartBeatResponseWaitSec
|
360
|
+
@gc_interval_sec = @config['server']['gc_interval_sec'] || GCIntervalSec
|
352
361
|
|
353
362
|
|
354
363
|
log_level_hash = {
|
@@ -559,6 +568,26 @@ class DangoServerFramework
|
|
559
568
|
end
|
560
569
|
end
|
561
570
|
|
571
|
+
# GCスレッドの開始
|
572
|
+
def gc_thread_start
|
573
|
+
Thread.start do
|
574
|
+
loop do
|
575
|
+
begin
|
576
|
+
sleep @gc_interval_sec
|
577
|
+
|
578
|
+
gc_start_time = Time.now
|
579
|
+
GC.enable
|
580
|
+
GC.start
|
581
|
+
GC.disable
|
582
|
+
logger.debug "GC #{Time.now - gc_start_time}sec #{Time.now_to_s}"
|
583
|
+
|
584
|
+
rescue
|
585
|
+
logger.error "Exception gc_thread_start #{Time.now_to_s} #{error_message($!, 'u')}"
|
586
|
+
end
|
587
|
+
end
|
588
|
+
end
|
589
|
+
end
|
590
|
+
|
562
591
|
# サーバーからクライアントへのデータ送信
|
563
592
|
def send_notice(sid, notice_name, send_obj, options = {})
|
564
593
|
logger.debug "send_notice(#{sid.inspect}, #{notice_name.inspect}) #{Time.now_to_s}"
|
@@ -73,12 +73,13 @@ namespace :dango do
|
|
73
73
|
dm = DangoMonitorClient.new()
|
74
74
|
p dm.server_reload()
|
75
75
|
dm.dango_client_close
|
76
|
+
puts "complete server_reload."
|
76
77
|
rescue
|
77
78
|
p $!.class
|
78
79
|
p $!.message
|
79
80
|
p $!.backtrace
|
81
|
+
puts "failed server_reload."
|
80
82
|
end
|
81
|
-
puts "complete server_reload."
|
82
83
|
end
|
83
84
|
|
84
85
|
desc "send_system_message" # システムメッセージ配信
|
@@ -100,12 +101,13 @@ namespace :dango do
|
|
100
101
|
dm = DangoMonitorClient.new()
|
101
102
|
p dm.send_system_message(message)
|
102
103
|
dm.dango_client_close
|
104
|
+
puts "complete send_system_message."
|
103
105
|
rescue
|
104
106
|
p $!.class
|
105
107
|
p $!.message
|
106
108
|
p $!.backtrace
|
109
|
+
puts "failed send_system_message."
|
107
110
|
end
|
108
|
-
puts "complete send_system_message."
|
109
111
|
end
|
110
112
|
|
111
113
|
end
|
data/lib/dango/version.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: dango
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-11-
|
6
|
+
version: 0.0.29
|
7
|
+
date: 2007-11-07 00:00:00 +09:00
|
8
8
|
summary: Realtime communications network framework for Ruby and Flash on Rails.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -78,3 +78,12 @@ dependencies:
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: 0.0.0
|
80
80
|
version:
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rake
|
83
|
+
version_requirement:
|
84
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 0.0.0
|
89
|
+
version:
|