diff options
author | re4k <re4k@re4k.info> | 2013-03-13 21:40:06 +0900 |
---|---|---|
committer | re4k <re4k@re4k.info> | 2013-03-13 21:40:06 +0900 |
commit | 2c56dbdb9b19584c5f3bc2ced20c684bd84fa46f (patch) | |
tree | 8784072141eef2354dcab82e5df675a361e04485 /lib | |
parent | 5d2a13afc4f08ba752a30e204367d028d09ad538 (diff) | |
download | aclog-2c56dbdb9b19584c5f3bc2ced20c684bd84fa46f.tar.gz |
Update (no new features)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/receiver/start.rb | 6 | ||||
-rw-r--r-- | lib/receiver/worker.rb | 23 |
2 files changed, 23 insertions, 6 deletions
diff --git a/lib/receiver/start.rb b/lib/receiver/start.rb new file mode 100644 index 0000000..476c866 --- /dev/null +++ b/lib/receiver/start.rb @@ -0,0 +1,6 @@ +Receiver::Worker.spawn!({:working_dir => Rails.root, + :pid_file => File.join(Rails.root, "tmp", "pids", "receiver.pid"), + :log_file => File.join(Rails.root, "log", "receiver.log"), + :sync_log => true, + :singleton => true}) + diff --git a/lib/receiver/worker.rb b/lib/receiver/worker.rb index 01a73cd..f5de318 100644 --- a/lib/receiver/worker.rb +++ b/lib/receiver/worker.rb @@ -8,11 +8,12 @@ module EM end end -class Receiver::Worker +class Receiver::Worker < DaemonSpawn::Base class DBProxyServer < EM::Connection $worker_count = nil @@wq = EM::WorkQueue::WorkQueue.new do |arg| begin + begin json = ::Yajl::Parser.parse(arg.last, :symbolize_keys => true) rescue ::Yajl::ParseError # JSON parse error....?? @@ -69,6 +70,10 @@ class Receiver::Worker # ??? puts "???????" end + rescue + $logger.error($!) + $logger.error($@) + end end @@wq.start @@ -102,7 +107,6 @@ class Receiver::Worker while line = @receive_buf.slice!(/.+?\r\n/) line.chomp! next if line == "" - p line arg = line.split(/ /, 2) case arg.first when "CONNECT" @@ -129,6 +133,7 @@ class Receiver::Worker close_connection_after_writing end when "QUIT" + $logger.info("Quit: #{@worker_number}") send_chunk("BYE") close_connection_after_writing else @@ -144,7 +149,6 @@ class Receiver::Worker end def post_init - p "connected" end def receive_data(data) @@ -182,23 +186,30 @@ class Receiver::Worker end end - def initialize - $logger = Receiver::Logger.new(:info) + def initialize(opts = {}) + super(opts) + $logger = Receiver::Logger.new(:warn) $connections = {} end - def start + def start(args) $logger.info("Database Proxy Started") EM.run do stop = Proc.new do EM.stop end Signal.trap(:INT, &stop) + Signal.trap(:QUIT, &stop) Signal.trap(:TERM, &stop) EM.start_server("0.0.0.0", Settings.db_proxy_port, DBProxyServer) EM.start_unix_domain_server(Settings.register_server_path, RegisterServer) end end + + def stop + end end + + |