# http://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/devices/streamer.html import sys import zmq import argparse def main(N, inport, outport): try: context = zmq.Context(1) # Socket facing clients frontend = context.socket(zmq.PULL) frontend.sndhwm = N frontend.rcvhwm = N #frontend.bind("tcp://127.0.0.1:5579") print "IN PORT: %s" % inport frontend.bind("tcp://127.0.0.1:" + inport) # Socket facing services backend = context.socket(zmq.PUSH) backend.sndhwm = N backend.rcvhwm = N #backend.bind("tcp://127.0.0.1:5580") print "OUT PORT: %s" % outport backend.bind("tcp://127.0.0.1:" + outport) zmq.device(zmq.STREAMER, frontend, backend) except Exception, e: print e print "bringing down zmq device" finally: backend.close() frontend.close() context.term() if __name__ == "__main__": parser = argparse.ArgumentParser(description='Queue process.') parser.add_argument('--queue_size', metavar='queue_size', type=int, dest='queue_size', help='Maximum size of the queue', required=True) parser.add_argument('--inport', metavar='inport', type=str, dest='inport', help='Port to collect data from the generator', required=False, default='5579') parser.add_argument('--outport', metavar='outport', type=str, dest='outport', help='Port to send the data to the trainer', required=False, default='5580') args = parser.parse_args() main(args.queue_size, args.inport, args.outport)