public static void main(String[] args) { String myID = null; if (args.length == 4) { try { zooHost = args[0]; zooPort = Integer.parseInt(args[1]); myPort = Integer.parseInt(args[2]); myID = args[3]; } catch (Exception e) { e.printStackTrace(); } } else { System.err.println("Usage tracker [zooHost] [zooPort] [myPort] [myID]"); System.exit(-1); } // initialize ZMQ context = ZMQ.context(1); socket = context.socket(ZMQ.REP); socket.bind("tcp://*:" + myPort); eventBus = new EventBus("Tracker"); JobTracker t = new JobTracker(myID); eventBus.register(t); System.out.println("Starting thread"); new Thread(t.manageWorker()).start(); while (true) { // wait for client req then respond JobPacket packetFromServer = (JobPacket) SerializationUtils.deserialize(socket.recv(0)); System.out.println("From client" + packetFromServer.type); eventBus.post(packetFromServer); } }