Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从redis数据存储中使用python huey获取任务结果_Python_Flask_Python Huey - Fatal编程技术网

从redis数据存储中使用python huey获取任务结果

从redis数据存储中使用python huey获取任务结果,python,flask,python-huey,Python,Flask,Python Huey,我正在处理flask中的huey任务队列。我正在尝试运行任务,并从初始函数中获取任务id号: @main.route('/renew',methods=['GET', 'POST']) def renew(): print(request.form) user =request.form.get('user') pw =request.form.get('pw') res =renewer(user,pw) res(blocking=True) # Bl

我正在处理flask中的huey任务队列。我正在尝试运行任务,并从初始函数中获取任务id号:

@main.route('/renew',methods=['GET', 'POST'])
def renew():
    print(request.form)
    user =request.form.get('user')
    pw =request.form.get('pw')
    res =renewer(user,pw)
    res(blocking=True)  # Block for up to 5 seconds
    print(res)
    return res.id
运行此命令后,我插入输出的id,该id与屏幕截图中的结果相同

进入:

@main.route('/get_result_by_id',methods=['GET', 'POST'])
def get_result_by_id():
    print(request.form)
    id =request.form.get('id')
    from ..tasking.tasks import my_huey
    res = my_huey.result(id)
    if res==None:
        res = 'no value'
    return res
但是我得到的是“没有价值”

如何访问数据存储中的值?

在def renew中执行resblocking=True时,将从结果存储中获取结果并有效地将其删除。然后,当您尝试使用id再次获取结果时,它将不返回任何结果

您有两个选项来解决此问题:

使用resblocking=True,preserve=True将结果保存在结果存储中,这样您仍然可以通过第二次调用获取结果。 使用使用诸如RedisExpireStorage等过期结果的存储。在设置huey实例时配置此存储时,可以指定结果的存储时间。这将为您提供x个时间,以便根据任务/结果id执行第二次调用。