celery.py 文件源码

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

项目:fantasie 作者: shawn1m 项目源码 文件源码
def single_instance_task(timeout):
    def task_exc(func):
        @functools.wraps(func)
        def wrapper(*args, **kwargs):
            lock_id = "celery-single-instance-" + func.__name__

            def acquire_lock():
                return cache.add(lock_id, "true", timeout)

            def release_lock():
                return cache.delete(lock_id)
            if acquire_lock():
                try:
                    func(*args, **kwargs)
                finally:
                    release_lock()
        return wrapper
    return task_exc
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号