tasks.py 文件源码

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

项目:forget 作者: codl 项目源码 文件源码
def unique(fun):
    global r
    if not r:
        r = redis.StrictRedis.from_url(flaskapp.config['REDIS_URI'])

    @wraps(fun)
    def wrapper(*args, **kwargs):
        key = 'celery_unique_lock:{}'.format(pickle.dumps((fun.__name__, args, kwargs)))
        has_lock = False
        try:
            if r.set(key, 1, nx=True, ex=60*5):
                has_lock = True
                return fun(*args, **kwargs)
        finally:
            if has_lock:
                r.delete(key)

    return wrapper
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号