Example #1
0
 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)
Example #2
0
 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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
 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)
Example #6
0
 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()
Example #7
0
 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)
Example #8
0
 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()
Example #9
0
 def __init__(self):
     super(Supervisor, self).__init__()
     self.flag = zmq.POLLIN
     self._visor = self.ctx.socket(zmq.PAIR)
     IOLoop.instance().add_handler(self)
Example #10
0
 def serv_forever(self):
     IOLoop.instance().start()
Example #11
0
 def __init__(self):
     self.ioloop = IOLoop.instance()