一个 flask 的站点,内容来自外部 API 调用,所有内容均使用缓存存储
在缓存过期需要刷新缓存的时候,用户体验就很差,可能需要等上好几秒内容才会显示出来
有没有 python 包来限制函数调用时间,比如超过 500ms 就放弃等待(但函数仍然继续执行),给用户显示旧的缓存内容?
想到 requests 限时还是不好,会中断 API 获取内容,我想不中断(后端继续刷新缓存)而是修改页面输出比如加一个 ajax 请求(最终用户还是看到最新内容)
也许开线程? 似乎不够优雅。。。问问有啥更好的方案
1
jam1024 2018-05-13 22:09:12 +08:00 1
缓存不是 nginx 之类的进行处理的吗
|
2
geelaw 2018-05-13 22:14:12 +08:00 1
你需要异步,开一个新的线程可以实现该需求。
|
3
cy97cool OP @jam1024 重点不在缓存啦。。。核心问题是怎么保证调用一个函数不超过设置的限时
超时后返回 fallback 内容 甚至需要设置多个限时 例如超过 1s 不等了 超过 10s 需要写日志记录 超过 30s 需要重试 |
4
wlwood 2018-05-13 22:54:57 +08:00 via Android
自己搞个装饰器就可以了。在装饰器里面,用 single, time 啥的设置函数超时
|