Пример #1
0
def checkPostLock():
    """文件锁定失效由两个redis string变量控制utilpost.getPostLockKey返回的key0,key1
    key0表示最大允许失效时间,key1表示临时允许失效时间,结合两者可以越过无法处理浏览器关闭、刷新等事件的问题。
    key1设定时长较短为60s,浏览器轮询服务端来不断刷新过期时间,以确保锁定持续。文章编辑也仅会检查该变量是否存在,存在则表示锁定。
    如果key1不存在,则不会去检查key0,这时处于没有锁定状态,但是如果key1不存在,那么也将删除key0,因为这时已超出最大允许编辑时间。
    Returns:
        TYPE: Description
    """
    if not request.args.get('location'):
        return jsonify({'status': 'fail'})

    key0, key1 = utilpost.getPostLockKey(request.args.get('location'))

    if redis.get(key0):
        redis.expire(key1, 60)
        return jsonify({'status': 'ok'})
    else:
        #如果失效总时间过期,那么删除临时失效时间,这时文章锁定真正失效。
        redis.delete(key1)
        return jsonify({'status': 'unlock'})
Пример #2
0
def logoutSignalHandler(sender, user):
    session['login_retry'] = 0

    ip = request.headers['X-Real-IP'] or request.headers['Remote_Addr']
    redis.delete(session_ip_prefix + ip)
Пример #3
0
def delete_post_cache(abspath):
    from .utilRedis import redis_client as redis
    key = 'post_get:%s' % abspath
    redis.delete(key)