class CircusClient(_CircusClient): def _init_context(self, context): self.context = context or Context.instance() def _init_poller(self): self.poller = Poller() self.poller.register(self.socket, POLLIN)
def device(device_type, isocket, osocket): """Start a zeromq device (gevent-compatible). Unlike the true zmq.device, this does not release the GIL. Parameters ---------- device_type : (QUEUE, FORWARDER, STREAMER) The type of device to start (ignored). isocket : Socket The Socket instance for the incoming traffic. osocket : Socket The Socket instance for the outbound traffic. """ p = Poller() if osocket == -1: osocket = isocket p.register(isocket, zmq.POLLIN) p.register(osocket, zmq.POLLIN) while True: events = dict(p.poll()) if isocket in events: osocket.send_multipart(isocket.recv_multipart()) if osocket in events: isocket.send_multipart(osocket.recv_multipart())
class CircusConsumer(_CircusConsumer): def _init_context(self, context): self.context = context or Context() def _init_poller(self): self.poller = Poller() self.poller.register(self.pubsub_socket, POLLIN)
def _init_poller(self): self.poller = Poller() self.poller.register(self.socket, POLLIN)
def __init__(self): self._poller = Poller()