class Emque::Consuming::CommandReceivers::UnixSocket
Public Instance Methods
start()
click to toggle source
# File lib/emque/consuming/command_receivers/unix_socket.rb, line 9 def start @thread = new_socket_server status end
Private Instance Methods
app_name()
click to toggle source
# File lib/emque/consuming/command_receivers/unix_socket.rb, line 16 def app_name config.app_name.capitalize end
bad_request(handler)
click to toggle source
# File lib/emque/consuming/command_receivers/unix_socket.rb, line 56 def bad_request(handler) <<-OUT The request was not formatted properly. We suggest using Emque::Consuming::Transmitter to send a requests.", ------- #{handler.help rescue "Help broken"} OUT end
log_error(e)
click to toggle source
# File lib/emque/consuming/command_receivers/unix_socket.rb, line 65 def log_error(e) logger.error(e.inspect) e.backtrace.each do |bt| logger.error(bt) end end
new_socket_server()
click to toggle source
# File lib/emque/consuming/command_receivers/unix_socket.rb, line 20 def new_socket_server Thread.new { loop do Socket.unix_server_loop(config.socket_path) do |sock, client_addr| begin receive_command(sock) rescue # nothing to do but restart the socket ensure sock.close end end end } end
receive_command(sock)
click to toggle source
# File lib/emque/consuming/command_receivers/unix_socket.rb, line 36 def receive_command(sock) req = Oj.load(sock.recv(100000), :symbol_keys => true) handler = Handler.new(req) sock.send(handler.respond, 0) rescue Oj::ParseError => e sock.send(bad_request(handler), 0) log_error(e) rescue NoMethodError => e sock.send(bad_request(handler), 0) log_error(e) rescue ArgumentError => e sock.send(bad_request(handler), 0) log_error(e) rescue => e sock.send(e.inspect, 0) log_error(e) end