代码拉取完成,页面将自动刷新
同步操作将从 qiujiayu/AutoLoadCache 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
非常多人都有这样的误区,认为数据层返回数据如果是“空”时(这里的空指的是:null或集合里为空)就不进行缓存了,这样才能实现数据的及时更新。对于这个情况,还是要分情况处理的。
数据为“空”是人为造成的,不是真的没有数据
非常典型的例子就是,异常处理不当造成的:直接使用try,catch,然后直接就返回null,或者一个空的集合。这样的做法非常不合理,使用者根本无法知道,是真的没有数据,还是因为有异常造成的,我们更无法确定要不要缓存这类数据了。
所以我们在实现数据层接口时,一定要合理使用异常处理。
数据“真的”为“空”时,建议缓存起来
我们使用缓存的目的之一,就是防止缓存失效后直接穿透到数据层,造成系统负载过高。所以如果获取这个数据并发突然上来了,很容易造成系统瘫痪。如果只是尽快更新缓存中的数据,达到更好的“实时”性,可以减小缓存时间来实现。
在AutoLoadCache 已经支持这种处理机制,只要在@Cache中,使用expireExpression,可以动态设置缓存时长,如:
@Cache(key = "...", expireExpression = "#empty(#retVal) ? 60: 120")
而且数据为“空”,它是有它实际意义的,就是告诉我们现在没有数据, 不要忽略这点。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。