示例#1
0
    def start(self):
        try:
            socket_front = self.zmq_context.socket(zmq.SUB)
            socket_front.setsockopt(zmq.SUBSCRIBE, '')
            socket_front.set_hwm(args.zhwm)
            socket_front.connect(args.rca)

            socket_back = self.zmq_context.socket(zmq.PUSH)
            socket_back.set_hwm(args.zhwm)

            socket_back.bind('inproc://backend')

            self._threads = [
                Worker(self.zmq_context, i) for i in range(0, WORKERS)
            ]

            for thread in self._threads:
                thread.setDaemon(True)
                thread.start()

            zmq.device(zmq.FORWARDER, socket_front, socket_back)

        except Exception, e:
            _print(repr(e), "ERROR")
            _print("bringing down zmq device")
示例#2
0
def run_device(in_sock, out_sock, in_addr=None, out_addr=None):
    try:
        if in_addr is not None:
            in_sock.bind(in_addr)
        if out_addr is not None:
            out_sock.bind(out_addr)
        zmq.device(0, in_sock, out_sock)
    finally:
        in_sock.close()
        out_sock.close()
示例#3
0
文件: forwarder.py 项目: znavy/zato
    def set_up_sockets(self):
        self.socket_for_publishers = self.ctx.socket(zmq.SUB)
        self.socket_for_publishers_address = self.base_address + '-sub'
        self.socket_for_publishers.bind(self.socket_for_publishers_address)

        self.socket_for_publishers.setsockopt(zmq.SUBSCRIBE, b'')

        self.socket_for_subscribers = self.ctx.socket(zmq.PUB)
        self.socket_for_subscribers_address = self.base_address + '-pub'
        self.socket_for_subscribers.bind(self.socket_for_subscribers_address)

        zmq.device(zmq.FORWARDER, self.socket_for_publishers, self.socket_for_subscribers)
示例#4
0
def pipeDevice(ns, path, dev_type, fe_addr, fe_type, be_addr, be_type, *_cb):
    try:
        context = zmq.Context(1)
        frontend = context.socket(fe_type)
        frontend.bind(fe_addr)
        backend = context.socket(be_type)
        backend.bind(be_addr)
        for c in _cb:
            c(ns, path, context, frontend, backend)
        zmq.device(dev_type, frontend, backend)
    except Exception as e:
        print(e)
        ns.F("/bin/registerException")
    finally:
        pass
        frontend.close()
        backend.close()
        context.term()
示例#5
0
def retransmisor(dir_entrada=DIRECCION_ENTRADA,
                 dir_salida=DIRECCION_SALIDA):
    '''Utiliza un dipositivo forwareder para retransmitir mensajes
    desde un extremo subscriptor, hacia una extremo emisor. Pueden
    existir múltiples emisores y múltiples receptores conectados
    al dispositivo retransmisor.
    Ver https://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/devices/forwarder.html
    '''
    try:
        entrada = app.context.socket(zmq.SUB)
        entrada.bind(dir_entrada)
        entrada.setsockopt(zmq.SUBSCRIBE, '')

        salida = app.context.socket(zmq.PUB)
        salida.bind(dir_salida)
        print "Launching device"
        zmq.device(zmq.FORWARDER, entrada, salida)
    except Exception, e:
        print e
        raise e
示例#6
0
    def _run_zmq_pubsub_forwarder(self, frontend_port, backend_port):
        import zmq.green as zmq

        ctx = zmq.Context()

        frontend_port = frontend_port or 5201
        backend_port = backend_port or 5202

        print "Starting ZeroMQ forwarder (pubsub)"
        print "frontend (publisher):", frontend_port
        print "backend (consumers):", backend_port

        frontend = ctx.socket(zmq.SUB)
        frontend.bind("tcp://*:%s" % frontend_port)
        frontend.setsockopt(zmq.SUBSCRIBE, "")

        backend = ctx.socket(zmq.PUB)
        backend.bind("tcp://*:%s" % backend_port)

        zmq.device(zmq.FORWARDER, frontend, backend)
示例#7
0
    def start(self):
        try:
            socket_front = self.zmq_context.socket(zmq.SUB)
            socket_front.setsockopt(zmq.SUBSCRIBE, '')
            socket_front.connect(args.ca)
            
            socket_back = self.zmq_context.socket(zmq.DEALER)
            socket_back.set_hwm(args.zhwm)
            socket_back.bind('inproc://backend')

            _threads = [Worker(self.zmq_context, i) for i in range(0, WORKERS) ]
            
            for thread in _threads:
                thread.setDaemon(True)
                thread.start()

            zmq.device(zmq.FORWARDER, socket_front, socket_back)

        except Exception, e:
            _print(repr(e))
            raise Exception(repr(e))
示例#8
0
def run_proxy3(ctx):    
    in_sock=ctx.socket(zmq.XSUB)
    in_sock.bind(ADDR_SUB)
    out_sock=ctx.socket(zmq.XPUB)
    out_sock.bind(ADDR_PUB)
    proxy=zmq.device(zmq.QUEUE,in_sock, out_sock)
示例#9
0
def device(device_type, frontend, backend, gevent=False):
    if gevent:
        from zmq.green import device
    else:
        from zmq import device
    device(device_type, frontend, backend)
示例#10
0
文件: broker.py 项目: wesdu/actor
def xxbroker():
    xpub = ctx.socket(zmq.XPUB)
    xpub.bind('tcp://*:5574')
    xsub = ctx.socket(zmq.XSUB)
    xsub.bind('tcp://*:5576')
    zmq.device(zmq.QUEUE, xsub, xpub)