【发布时间】:2018-03-25 01:49:39
【问题描述】:
这是一个高级问题,因为我可能只是设计不佳的 Flask 应用程序,但我目前已经构建了一个应用程序,在用户提交表单后,celery 工作人员将输入格式化为 sql 查询并执行该查询.
现在我已经设置了一个 Redis 后端来保存结果,所以当任务完成后,我可以通过从 Redis 获取它来显示结果。但是,我不希望这些结果永远存在于 Redis 中,但我确实希望它们在应用程序中的整个用户会话中持续存在,以便他们可以在会话中查看先前查询的结果。
我该怎么做呢?我的直觉是将单个任务 ID 添加到会话中,当用户使用应用程序时,使用 celery 中的 forget() 删除所有任务 ID。
【问题讨论】:
-
你可以看看
task_func.AsyncResult(task_id)方法。