示例#1
0
def release_reserve_task_lock_by_keys(resource_ids,
                                      timeout,
                                      pipeline=None,
                                      expiry=EXPIRE_RESERVE_TASK_LOCK_DELAY):
    if not resource_ids:
        return

    redis_conn = sentinel.master
    pipeline = redis_conn.pipeline(transaction=True)
    lock_manager = LockManager(redis_conn, timeout)
    for resource_id in resource_ids:
        lock_manager.release_reserve_task_lock(resource_id, pipeline, expiry)
        current_app.logger.info(
            "Release reserve task lock. resource id %s, expiry %d",
            resource_id, expiry)
示例#2
0
def release_reserve_task_lock_by_id(project_id,
                                    task_id,
                                    user_id,
                                    timeout,
                                    expiry=EXPIRE_RESERVE_TASK_LOCK_DELAY):
    reserve_key = get_reserve_task_key(task_id)
    if not reserve_key:
        return

    redis_conn = sentinel.master
    pipeline = redis_conn.pipeline(transaction=True)
    lock_manager = LockManager(redis_conn, timeout)
    resource_id = "reserve_task:project:{}:category:{}:user:{}:task:{}".format(
        project_id, reserve_key, user_id, task_id)
    lock_manager.release_reserve_task_lock(resource_id, pipeline, expiry)
    current_app.logger.info(
        "Release reserve task lock. project %s, task %s, user %s, expiry %d",
        project_id, task_id, user_id, expiry)