dango 0.0.39 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/dango/client_framework.rb +1 -0
- data/lib/dango/monitor/dango_monitor_client.rb +1 -0
- data/lib/dango/server_framework.rb +23 -11
- data/lib/dango/version.rb +2 -2
- metadata +11 -2
@@ -39,6 +39,7 @@ class DangoMonitorClient < DangoClientFramework
|
|
39
39
|
logger.debug "DangoMonitorClient:#{monitor_action_name}:#{ENV['RAILS_ROOT']}"
|
40
40
|
begin
|
41
41
|
ret_obj = send_action_return_notice("_monitor_#{monitor_action_name}", {})
|
42
|
+
logger.debug "get_server_info_common:ret_obj=#{ret_obj.inspect}"
|
42
43
|
raise("code is not 0 (faild). :code=#{ret_obj['code']}") if ret_obj['code'] != 0
|
43
44
|
return(ret_obj[monitor_action_name])
|
44
45
|
rescue DangoFrameworkConnectionError
|
@@ -107,12 +107,14 @@ class DangoServerFramework
|
|
107
107
|
|
108
108
|
# SIGINT の捕捉
|
109
109
|
Signal.trap(:INT) do
|
110
|
+
logger.warn "SIGINT\n#{caller(0).pretty_inspect}"
|
110
111
|
stop_gserver() # gserverの停止
|
111
112
|
exit_process() # プロセス終了処理
|
112
113
|
end
|
113
114
|
|
114
115
|
# 終了処理を登録しておく(これが無いとWindowsではエラーが出てもプロセスが落ちないことがある)
|
115
116
|
at_exit do
|
117
|
+
logger.error "at_exit ERROR\n#{caller(0).pretty_inspect}"
|
116
118
|
stop_gserver() # gserverの停止
|
117
119
|
exit_process() # プロセス終了処理
|
118
120
|
end
|
@@ -307,7 +309,13 @@ class DangoServerFramework
|
|
307
309
|
|
308
310
|
if is_flash_policy_file && @policy_file_request # Flashのポリシーファイルが来たら
|
309
311
|
logger.info "is_flash_policy_file #{sid} "
|
310
|
-
policy_data =
|
312
|
+
policy_data = <<EOF
|
313
|
+
<?xml version="1.0"?>
|
314
|
+
<cross-domain-policy>
|
315
|
+
<allow-access-from domain="*" to-ports="*" />
|
316
|
+
</cross-domain-policy>
|
317
|
+
EOF
|
318
|
+
policy_data += "\0" + "\n"
|
311
319
|
logger.debug policy_data
|
312
320
|
sock.write policy_data
|
313
321
|
sock.flush
|
@@ -390,11 +398,10 @@ class DangoServerFramework
|
|
390
398
|
end
|
391
399
|
|
392
400
|
logger.info "#{sock.inspect} #{sid} is closed"
|
393
|
-
|
394
|
-
session_del()
|
395
401
|
end
|
396
402
|
end
|
397
403
|
|
404
|
+
session_del() # @mutex_proc_thread.synchronizeの中だとうまくいかない
|
398
405
|
end
|
399
406
|
end
|
400
407
|
|
@@ -578,8 +585,12 @@ class DangoServerFramework
|
|
578
585
|
# @session[sid]
|
579
586
|
end
|
580
587
|
def session_del # セッション情報の初期化
|
581
|
-
|
588
|
+
begin
|
589
|
+
@session_list.delete(Thread.current.object_id)
|
582
590
|
# @session_th_list.delete(Thread.current)
|
591
|
+
rescue Exception
|
592
|
+
logger.error "ERROR\n#{error_message($!, 'u')}"
|
593
|
+
end
|
583
594
|
end
|
584
595
|
|
585
596
|
attr_reader(:session_list)
|
@@ -629,21 +640,21 @@ class DangoServerFramework
|
|
629
640
|
begin
|
630
641
|
sleep @gc_interval_sec
|
631
642
|
|
632
|
-
Thread.critical = true
|
643
|
+
# Thread.critical = true
|
633
644
|
logger.debug "GC start "
|
634
645
|
gc_start_time = Time.now
|
635
646
|
GC.enable
|
636
647
|
GC.start
|
637
648
|
GC.disable
|
638
649
|
logger.debug "GC end #{Time.now - gc_start_time}sec "
|
639
|
-
Thread.critical = false
|
650
|
+
# Thread.critical = false
|
640
651
|
|
641
652
|
rescue Exception
|
642
653
|
logger.error "Exception gc_thread_start #{error_message($!, 'u')}"
|
643
654
|
end
|
644
655
|
end
|
645
656
|
end
|
646
|
-
th.priority =
|
657
|
+
th.priority = 3
|
647
658
|
end
|
648
659
|
|
649
660
|
# ハートビートスレッドの開始
|
@@ -797,10 +808,11 @@ class DangoServerFramework
|
|
797
808
|
if Time.now > end_reserved_time
|
798
809
|
logger.debug "send_notice:receive timeout:#{notice_name} #{sid} #{end_reserved_time}"
|
799
810
|
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
811
|
+
# このコードは不要なはずだが念の為取っておいてある、安定したことが確認できたら削除する
|
812
|
+
if notice_name.to_s == "_heart_beat" # heart beatだったらsockを止める
|
813
|
+
logger.info "!!!! send_notice:heart_beat timeout"
|
814
|
+
sock.close if !sock.closed?
|
815
|
+
end
|
804
816
|
break
|
805
817
|
end
|
806
818
|
|
data/lib/dango/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dango
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ""
|
6
6
|
authors:
|
7
7
|
- Keisuke Minami
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2007-12-
|
12
|
+
date: 2007-12-08 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -21,6 +21,15 @@ dependencies:
|
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: "0"
|
23
23
|
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: dango_generator
|
26
|
+
version_requirement:
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 0.1.0
|
32
|
+
version:
|
24
33
|
description: Realtime communications network framework for Ruby and Flash on Rails.
|
25
34
|
email: keisuke@rccn.com
|
26
35
|
executables: []
|