当用户的Flask会话结束时,如何从redis后端删除所有Celery结果?

时间:2017-10-13 01:35:05

标签: python flask redis celery

这是一个高级别的问题,因为我可能只有一个设计糟糕的Flask应用程序,但我目前已经构建了一个应用程序,在用户提交表单后,芹菜工作者将输入格式化为sql查询并执行该查询。

现在我已经设置了一个Redis后端来保存结果,所以当任务完成后,我可以通过从Redis获取它来显示结果。但是,我不希望这些结果永远存在于Redis中,但我确实希望它们在应用程序中保留整个用户会话,以便他们可以在会话中查看先前查询的结果。

我该怎么做呢?我的直觉是将单个任务ID添加到会话中,当用户浏览应用程序时,在celery中使用forget()来删除所有任务ID。

1 个答案:

答案 0 :(得分:0)

您可以使用'result_expires'配置标志并将其设置为~5min。有关详细信息:http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-result_expires