如何避免循环缓存失效无限循环

时间:2013-12-05 07:52:03

标签: php caching

假设我们在这个结构中有一个应用程序:

Client
--ClientUser
----Questionnaire
------Question

我们正在缓存这些项目中的每一项。如果我使其中一个项无效,则需要向上和向下传播。因为在添加新问题后,问卷的questionCount将会过时。此外,在查找客户端名称后,缓存的ClientUser对象中的客户端数组将过时。

所以每个失效代码也必须调用它的父代和子代的无效代码。但是,在使问题无效之后,它会向上传播并使客户端无效。但是客户端失效代码也会向下传播,这种情况一直在继续......

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

有两种方法,取决于循环是否可行。

  1. 永远不要将失效传播回您所获得的对象。

  2. 让一个对象与正在进行的失效相关联,并让它跟踪已经失效的每个对象。被无效的对象必须要求此对象使其他对象无效,并且不会使作为此无效的一部分已经失效的对象无效。

相关问题