sfapi.py 文件源码

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

项目:solidfire-flocker-driver 作者: j-griffith 项目源码 文件源码
def retry(exc_tuple, tries=5, delay=1, backoff=2):
    def retry_dec(f):
        @six.wraps(f)
        def func_retry(*args, **kwargs):
            _tries, _delay = tries, delay
            while _tries > 1:
                try:
                    return f(*args, **kwargs)
                except exc_tuple:
                    time.sleep(_delay)
                    _tries -= 1
                    _delay *= backoff
                    LOG.debug('Retrying %(args)s, %(tries)s attempts '
                              'remaining...',
                              {'args': args, 'tries': _tries})
            # NOTE(jdg): Don't log the params passed here
            # some cmds like createAccount will have sensitive
            # info in the params, grab only the second tuple
            # which should be the Method
            msg = ('Retry count exceeded for command: %s' %
                   args[1],)
            LOG.error(msg)
            raise SolidFireRequestException(message=msg)
        return func_retry
    return retry_dec
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号