aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorre4k <re4k@re4k.info>2013-03-13 21:40:06 +0900
committerre4k <re4k@re4k.info>2013-03-13 21:40:06 +0900
commit2c56dbdb9b19584c5f3bc2ced20c684bd84fa46f (patch)
tree8784072141eef2354dcab82e5df675a361e04485 /lib
parent5d2a13afc4f08ba752a30e204367d028d09ad538 (diff)
downloadaclog-2c56dbdb9b19584c5f3bc2ced20c684bd84fa46f.tar.gz
Update (no new features)
Diffstat (limited to 'lib')
-rw-r--r--lib/receiver/start.rb6
-rw-r--r--lib/receiver/worker.rb23
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
+
+