[英]Getting task result with python huey from redis data store
我正在使用 flask 中的 Huey 任务队列https://github.com/coleifer/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(与截图中的结果相同)
进入 :
@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()
中执行res(blocking=True)
,您是从结果存储中获取结果并有效地将其删除。 当您然后尝试使用 id 再次获取结果时,它只会返回任何内容。
您有 2 个选项可以解决此问题:
res(blocking=True, preserve=True)
将结果保存在结果存储中,这样您仍然可以在第二次调用时获取它。RedisExpireStorage
。 在设置 Huey 实例的同时配置此存储时,您可以指定应存储结果的时间。 这将为您提供 x 时间根据任务/结果 ID 进行第二次调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.