lib/zoomq/server/worker.rb in zoomq-0.1.1 vs lib/zoomq/server/worker.rb in zoomq-0.2.0

- old
+ new

@@ -1,35 +1,33 @@ java_import org.zeromq.ZMQ -java_import org.zeromq.ZContext -java_import org.zeromq.ZLoop -require 'zoomq/server/request_handler' +require 'zmachine' +require 'zoomq/server/connection' module ZooMQ class Server class Worker attr_reader :server def initialize(server) @server = server - @zloop = ZLoop.new - @zloop.verbose(true) - initialize_socket end - def initialize_socket - @socket = @server.create_socket(ZMQ::ROUTER) - @port = @socket.bind("tcp://*:*") - RequestHandler.new(@socket).register(@zloop, self) - Thread.current.name = "#{@server.fqdn}:#{@port}" - @socket.identity = Thread.current[:name].to_java_bytes + def run + ZMachine.run { initialize_socket } end - def run - @server.log.info("pubdater:worker", run: true, announce: @socket.identity) - @server.announce(@socket.identity) - @zloop.start + def initialize_socket + $log.info("zoomq:server:worker", bind: "tcp://*:*") + ZMachine.start_server("tcp://*:*", ZMQ::ROUTER, Connection) do |handler| + identity = "#{@server.fqdn}:#{handler.channel.port}" + $log.info("zoomq:server:worker", announce: identity) + Thread.current.name = "ZMQ::Server::Worker (#{identity})" + handler.channel.identity = identity + handler.server = @server + @server.announce(identity) + end end end end end