【发布时间】:2019-09-07 01:01:54
【问题描述】:
我正在缓存一些发票,但有 2 个缓存条目。如果发票缓存存在或不存在,则保留第一个缓存条目。我为什么要这样做?因为有一个业务逻辑(get_cache_timeout 方法)告诉我何时更新保存实际发票详细信息的第二个缓存条目。 所以,第一个是我了解第二个缓存条目是否存在的标志。如果没有,我会调用后端系统并更新第一个和第二个缓存条目。
拥有 60 天的第二个缓存键的原因是,在最坏的情况下,如果第一个条目不存在然后调用后端系统失败,我仍希望返回第二个缓存条目作为响应而不是显示错误。
cache.set(f'{invoices}_cache_exists', True, get_cache_timeout())
cache.set(f'{invoices}_cache', some_cache, 60*60*24*60)
抱歉,解释的混乱,但我希望你明白这个解决方案背后的想法。
所以,最后我的问题是,对于这个问题,我怎样才能摆脱第一个缓存条目并且只有第二个缓存条目有 2 个超时?第一个告诉我何时更新,第二个是删除缓存。
【问题讨论】: