예제 #1
0
    def _worker_run(self):
        while not self.closed:
            try:
                msg = self._select.get()
            except (mitogen.core.ChannelError, mitogen.core.LatchError):
                e = sys.exc_info()[1]
                LOG.info('%r: channel or latch closed, exitting: %s', self, e)
                return

            func = self._func_by_recv[msg.receiver]
            try:
                func(msg.receiver, msg)
            except Exception:
                LOG.exception('While handling %r using %r', msg, func)
예제 #2
0
    def _worker_run(self):
        while not self.closed:
            try:
                msg = self._select.get()
            except (mitogen.core.ChannelError, mitogen.core.LatchError):
                e = sys.exc_info()[1]
                LOG.info('%r: channel or latch closed, exitting: %s', self, e)
                return

            service = msg.receiver.service
            try:
                service.on_receive_message(msg)
            except Exception:
                LOG.exception('While handling %r using %r', msg, service)