tasks.py 文件源码

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

项目:munch-core 作者: crunchmail 项目源码 文件源码
def task_autoretry(*args_task, **kwargs_task):
    # https://github.com/celery/celery/pull/2112
    def real_decorator(func):
        @task(*args_task, **kwargs_task)
        @functools.wraps(func)
        def wrapper(*args, **kwargs):
            try:
                func(*args, **kwargs)
            except kwargs_task.get('autoretry_on', Exception) as exc:
                for exclude in kwargs_task.get('autoretry_exclude', []):
                    if isinstance(exc, exclude):
                        log.info(
                            'Wont retry this task because exception '
                            '"{}" is exclude'.format(str(exc)))
                        return
                if kwargs_task.get('retry_message', False):
                    log.error(kwargs_task.get('retry_message'), exc_info=True)
                wrapper.retry(exc=exc)
        return wrapper
    return real_decorator
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号