def on_write(self): try: buf = self._buffer.popleft() self.fd().send(buf) except IndexError as ex: self.flag -= zmq.POLLIN IOLoop.instance().update_handler(self.fd(), self.flag)
def send(self, klass, method, mid, *args, **kwargs): data = { 'id': mid, 'method': '{klass}->{method}'.format(klass=klass, method=method), 'params': args, 'ex_params': kwargs } s_data = json.dumps(data) self._buffer.append(s_data) if not zmq.POLLOUT & self.flag: self.flag |= zmq.POLLOUT IOLoop.instance().update_handler(self.fd(), self.flag)
def _task_wrap(func, handler, frame, data_dict): params = data_dict.get('params') rid = data_dict.get('id') try: tik = time.time() res = func(*params) tok = time.time() costs = '%.5f' % (tok - tik) IOLoop.instance().add_callback(handler.finish, frame, rid, res, costs=costs) Log.get_logger().debug('[response] [%s] takes [%s] seconds', res, costs) except Exception as e: IOLoop.instance().add_callback(handler.finish_with_error, frame, rid, e) Log.get_logger().exception(e)
def _task_wrap(func, handler, data_dict): address = func.dispatch_context['address'] params = data_dict.get('params') rid = data_dict.get('id') try: tik = time.time() res = func(*params) tok = time.time() costs = '%.5f' % (tok-tik) IOLoop.instance().add_callback(handler.finish, address, res, costs=costs, id=rid) Log.get_logger().debug('[response] to %r with [%s] takes [%s] seconds', address, res, costs) except Exception as e: IOLoop.instance().add_callback(handler.finish_with_error, address, e, id=rid) Log.get_logger().exception(e)
def __init__(self): super(AsyncRPCClient, self).__init__() self.flag = zmq.POLLIN self._callbacks = {} self._buffer = deque() self._ioloop = IOLoop.instance() self._client = self.ctx.socket(zmq.XREQ) self._ioloop.add_handler(self)
def __init__(self, host, port, configs={}): self.host = host self.port = port self.configs = configs self._deployed = False self._monitored = False self._lock = threading.Lock() self._rpclient = AsyncRPCClient() self._supervisor = Supervisor() self.event = zmq.EVENT_CONNECTED | zmq.EVENT_DISCONNECTED for config, value in self.configs.iteritems(): self._rpclient.sock().setsockopt(config, value) self._ioloop = IOLoop.instance() if not self._ioloop.is_running(): with self._lock: if not self._ioloop.is_running(): threading.Thread(target=lambda: IOLoop.instance().start()).start()
def __init__(self): super(RemoteSrv, self).__init__() self._mapper = {} self.flag = zmq.POLLIN # overwrite the flag self._rpcsrv = self.ctx.socket(zmq.XREP) IOLoop.instance().add_handler(self)
def __init__(self, ip, port): self._rpclient = AsyncRPCClient() self._rpclient.connect('tcp://{ip}:{port}'.format(ip=ip, port=port)) self._ioloop = IOLoop.instance() self._ioloop.add_handler(self._rpclient.fd(), self._rpclient.handle, self._rpclient.flag) threading.Thread(target=lambda: IOLoop.instance().start()).start()
def __init__(self): super(Supervisor, self).__init__() self.flag = zmq.POLLIN self._visor = self.ctx.socket(zmq.PAIR) IOLoop.instance().add_handler(self)
def serv_forever(self): IOLoop.instance().start()
def __init__(self): self.ioloop = IOLoop.instance()