我正在使用Flask编写一个小型Web服务器,需要执行以下操作:
- 在第一个请求中,提供基本页面并启动长(15-60秒)数据处理任务。数据处理任务查询我不控制的第二台服务器,更新本地数据库,然后对结果进行一些计算以显示在网页中。
- 该页面发出了几个AJAX请求,这些请求都依赖于长任务的部分结果,所以我需要等到处理完成。
- 如果第一页的后续请求在处理任务正在进行时(或者甚至在此后不久)进入,则理想情况下会重新使用先前请求的结果。
醇>
我尝试使用flask-cache(特别是SimpleCache),但遇到了一个问题,因为当我真的宁愿保留确切的对象时,缓存似乎会剔除结果。
我想我可以重新编写我可以缓存的内容,然后实现一个工作线程来进行处理。
有没有更好的方法来处理这种工作流程?