无效订单是否从商品缓存中删除订单?

时间:2014-09-09 22:45:17

标签: atg

我的假设是,当我们通过调用orderImpl.invalidateOrder()使命令无效时,它所做的就是将容器设置为null,从而在下一次调用(例如)getCommerceItem()时,refreshOrder管道被执行并加载项目。

我的问题是 - 即使我们使订单无效,当refreshOrder管道执行时,它会从项目缓存(如果可用)加载订单,指示订单不会从orderImpl.invalidateOrder上的缓存中删除?< / p>

1 个答案:

答案 0 :(得分:2)

从ATG10.2及更低版本发言......

ATG的缓存/订单失效中的错误(我认为)。

正如@radimpe评论建议的那样,如果你调用<!-- 1. Load libraries --> <!-- IE required polyfills, in this exact order --> <script src="node_modules/es6-shim/es6-shim.min.js"></script> ,下次访问Order对象中的任何内容时,应该使用未缓存的OrderImpl.invalidateOrder()

但是,ATG的存储库缓存实际上是通过将从Cache中删除的项目放入WeakReference来实现的,这意味着它会立即将项目从缓存中取出。所以功能被破坏了,恕我直言。

除非有人知道更好吗?