当前位置: 首页>>代码示例>>Python>>正文


Python Thrift.TApplicationException方法代码示例

本文整理汇总了Python中thrift.Thrift.TApplicationException方法的典型用法代码示例。如果您正苦于以下问题:Python Thrift.TApplicationException方法的具体用法?Python Thrift.TApplicationException怎么用?Python Thrift.TApplicationException使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在thrift.Thrift的用法示例。


在下文中一共展示了Thrift.TApplicationException方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: execute

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def execute(self, *args, **kwargs):
        if not self.params:
            raise ExecuteActionError("is empty")

        host = self.params.get("host", "127.0.0.1")
        port = int(self.params.get("port", 5643))
        max_connections = int(self.params.get("max_connections", config.get("ACTION_THRIFT_MAX_CONNECTIONS", 64)))

        try:
            client = self.get_client(host, port, max_connections)
            try:
                yield client.forsun_call(self.plan.key, int(self.ts), self.params)
            except TApplicationException as e:
                logging.error("thrift action execute error '%s' %s:%s '%s' %.2fms", self.plan.key, host, port, e,
                              (time.time() - self.start_time) * 1000)
            else:
                logging.debug("thrift action execute '%s' %s:%s %.2fms", self.plan.key, host, port,
                              (time.time() - self.start_time) * 1000)
        except Exception as e:
            logging.error("thrift action execute error '%s' %s:%s '%s' %.2fms", self.plan.key, host, port, e,
                          (time.time() - self.start_time) * 1000)
            raise ActionExecuteRetry() 
开发者ID:snower,项目名称:forsun,代码行数:24,代码来源:thriftaction.py

示例2: default_thrift_client_replace_if

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def default_thrift_client_replace_if(exception):
    """Default policy on whether to replace the underlying thrift client.

    The default policy tests whether the given exception is a user defined
    thrift exception. If the given exception is a user defined thrift exception,
    it indicates the underlying connection to the thrift server is sound and can
    continue to be used.

    Args:
        exception: Exception thrown from method invocation of the thrift client.

    Return:
        True, if the underlying thrift client needs to be replaced; otherwise,
        False will be returned.

    """
    # NOTE: this is the best I can come up with to exam whether the given
    # exception is a user defined exception or not. Currently
    # TApplicationException, TProtocolException, TTransportException, and user
    # defined thrift exceptions are all subclasses of TException; however, the
    # other types of exceptions besides user defined ones don't have thrift_spec
    # attribute
    if isinstance(exception, TException):
        if (isinstance(exception, TApplicationException) or
                hasattr(exception, 'thrift_spec')):
            return False
    return True 
开发者ID:pinterest,项目名称:kingpin,代码行数:29,代码来源:thrift_client_mixin.py

示例3: method_other_error

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def method_other_error(self):
        raise TApplicationException() 
开发者ID:pinterest,项目名称:kingpin,代码行数:4,代码来源:test_thrift_client_mixin.py

示例4: test_other_error

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def test_other_error(self):
        client = FakeThriftClientMixin(HostsProvider(HOSTS))
        self.assertRaises(TApplicationException, client.method_other_error)
        # Connection should be established.
        self.assertEqual('fakehost1', client.host)
        self.assertEqual(100, client.port)
        self.assertTrue(client.connected)
        # requests_served doesn't not increase.
        self.assertEqual(0, client.requests_served) 
开发者ID:pinterest,项目名称:kingpin,代码行数:11,代码来源:test_thrift_client_mixin.py

示例5: test_replace_if

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def test_replace_if(self):
        def replace_if(ex):
            return isinstance(ex, ThriftConnectionError)

        client = FakePooledThriftClientMixin(host_provider=HostsProvider(HOSTS),
                                             conn_replace_policy=replace_if)
        self.assertRaises(ThriftConnectionError, client.method_network_error)
        self.assertEqual(0, client.client_pool.num_connected)

        self.assertRaises(TApplicationException, client.method_other_error)
        self.assertEqual(1, client.client_pool.num_connected) 
开发者ID:pinterest,项目名称:kingpin,代码行数:13,代码来源:test_thrift_client_mixin.py

示例6: _issueLiffView

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def _issueLiffView(self, ctx, request):
        memory_buffer = TMemoryOutputBuffer(self._transport.get_request_size_limit())
        oprot = self._protocol_factory.get_protocol(memory_buffer)
        oprot.write_request_headers(ctx)
        oprot.writeMessageBegin('issueLiffView', TMessageType.CALL, 0)
        args = issueLiffView_args()
        args.request = request
        args.write(oprot)
        oprot.writeMessageEnd()
        response_transport = await self._transport.request(ctx, memory_buffer.getvalue())

        iprot = self._protocol_factory.get_protocol(response_transport)
        iprot.read_response_headers(ctx)
        _, mtype, _ = iprot.readMessageBegin()
        if mtype == TMessageType.EXCEPTION:
            x = TApplicationException()
            x.read(iprot)
            iprot.readMessageEnd()
            if x.type == TApplicationExceptionType.RESPONSE_TOO_LARGE:
                raise TTransportException(type=TTransportExceptionType.RESPONSE_TOO_LARGE, message=x.message)
            raise x
        result = issueLiffView_result()
        result.read(iprot)
        iprot.readMessageEnd()
        if result.e is not None:
            raise result.e
        if result.success is not None:
            return result.success
        raise TApplicationException(TApplicationExceptionType.MISSING_RESULT, "issueLiffView failed: unknown result") 
开发者ID:dyseo,项目名称:AsyncLine,代码行数:31,代码来源:f_LiffService.py

示例7: _revokeToken

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def _revokeToken(self, ctx, request):
        memory_buffer = TMemoryOutputBuffer(self._transport.get_request_size_limit())
        oprot = self._protocol_factory.get_protocol(memory_buffer)
        oprot.write_request_headers(ctx)
        oprot.writeMessageBegin('revokeToken', TMessageType.CALL, 0)
        args = revokeToken_args()
        args.request = request
        args.write(oprot)
        oprot.writeMessageEnd()
        response_transport = await self._transport.request(ctx, memory_buffer.getvalue())

        iprot = self._protocol_factory.get_protocol(response_transport)
        iprot.read_response_headers(ctx)
        _, mtype, _ = iprot.readMessageBegin()
        if mtype == TMessageType.EXCEPTION:
            x = TApplicationException()
            x.read(iprot)
            iprot.readMessageEnd()
            if x.type == TApplicationExceptionType.RESPONSE_TOO_LARGE:
                raise TTransportException(type=TTransportExceptionType.RESPONSE_TOO_LARGE, message=x.message)
            raise x
        result = revokeToken_result()
        result.read(iprot)
        iprot.readMessageEnd()
        if result.e is not None:
            raise result.e 
开发者ID:dyseo,项目名称:AsyncLine,代码行数:28,代码来源:f_LiffService.py

示例8: process

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def process(self, ctx, iprot, oprot):
        args = issueLiffView_args()
        args.read(iprot)
        iprot.readMessageEnd()
        result = issueLiffView_result()
        try:
            ret = self._handler([ctx, args.request])
            if inspect.iscoroutine(ret):
                ret = await ret
            result.success = ret
        except TApplicationException as ex:
            async with self._lock:
                _write_application_exception(ctx, oprot, "issueLiffView", exception=ex)
                return
        except LiffException as e:
            result.e = e
        except Exception as e:
            async with self._lock:
                _write_application_exception(ctx, oprot, "issueLiffView", ex_code=TApplicationExceptionType.INTERNAL_ERROR, message=str(e))
            raise
        async with self._lock:
            try:
                oprot.write_response_headers(ctx)
                oprot.writeMessageBegin('issueLiffView', TMessageType.REPLY, 0)
                result.write(oprot)
                oprot.writeMessageEnd()
                oprot.get_transport().flush()
            except TTransportException as e:
                # catch a request too large error because the TMemoryOutputBuffer always throws that if too much data is written
                if e.type == TTransportExceptionType.REQUEST_TOO_LARGE:
                    raise _write_application_exception(ctx, oprot, "issueLiffView", ex_code=TApplicationExceptionType.RESPONSE_TOO_LARGE, message=e.message)
                else:
                    raise e 
开发者ID:dyseo,项目名称:AsyncLine,代码行数:35,代码来源:f_LiffService.py

示例9: _write_application_exception

# 需要导入模块: from thrift import Thrift [as 别名]
# 或者: from thrift.Thrift import TApplicationException [as 别名]
def _write_application_exception(ctx, oprot, method, ex_code=None, message=None, exception=None):
    if exception is not None:
        x = exception
    else:
        x = TApplicationException(type=ex_code, message=message)
    oprot.write_response_headers(ctx)
    oprot.writeMessageBegin(method, TMessageType.EXCEPTION, 0)
    x.write(oprot)
    oprot.writeMessageEnd()
    oprot.get_transport().flush()
    return x 
开发者ID:dyseo,项目名称:AsyncLine,代码行数:13,代码来源:f_LiffService.py


注:本文中的thrift.Thrift.TApplicationException方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。