dango 0.0.39 → 0.1.0
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 +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: []
|