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.
@@ -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.start
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
@@ -2,7 +2,7 @@ module Dango #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 26
5
+ TINY = 29
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
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.26
7
- date: 2007-11-03 00:00:00 +09:00
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: