我正在使用 flask_caching 来缓存我的烧瓶 API 的响应。我在这样的路线上使用装饰器
import random
class Status(Resource):
@cache.memoize(timeout=60) # cache for a minute
def post(self):
return random.randint(0, 5)
这将在一分钟内返回相同的随机数。但是,如果随机函数(阅读:“路由内的任何功能”)中断,并且路由返回 500 内部服务器错误怎么办?据我所知,flask_caching 将对此进行缓存,并在一分钟内为所有进一步的调用返回错误响应,这不是我想要的。
我读到了这个并找到了 response_filter 参数,它可以很容易地添加到装饰器中,似乎是专门为了防止这种情况发生(“用于防止缓存代码 500 响应。”,来自文档:
@cache.memoize(timeout=60, response_filter=callable_check_for_500(???))
但是,我找不到此用例的示例。它说“如果可调用返回 False,则不会缓存内容。” - 我如何实现这个可调用来检查状态码是否为 500?任何链接或想法表示赞赏