decorators.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:DeepClassificationBot 作者: AntreasAntoniou 项目源码 文件源码
def timeout(max_timeout):
    """Timeout decorator, parameter in seconds."""
    def timeout_decorator(f):
        """Wrap the original function."""
        @functools.wraps(f)
        def func_wrapper(self, *args, **kwargs):
            """Closure for function."""
            pool = multiprocessing.pool.ThreadPool(processes=1)
            async_result = pool.apply_async(f, (self,) + args, kwargs)
            timeout = kwargs.pop('timeout_max_timeout', max_timeout) or max_timeout
            # raises a TimeoutError if execution exceeds max_timeout
            return async_result.get(timeout)
        return func_wrapper
    return timeout_decorator
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号