2016-04-11 77 views
0

我一直在嘗試調查在使用Objectify和緩存打開時,獲取DeadlineExceededException可能產生的行爲。如何使用Objectify從緩存中獲取陳舊的數據?

我到目前爲止的實驗一直是這樣的:1)存儲一個或多個實體,2)然後休眠大部分剩餘的執行時間,3)在有限循環中進行一些更新,直到請求被中止。 4)在單獨的請求中檢查高速緩存是否與成功寫入數據存儲同步。

「某些更新」意味着更改對象中很多字符串(50),然後寫回。我還嘗試更新事務中的幾個對象,以測試在再次加載實體時是否可以得到一些不一致的結果。到目前爲止,經過數千次測試後,我沒有從緩存中獲得單個不一致的實體。

因此,我可以以某種方式挑起大概緩存實體的負載與數據存儲中的實體不一致嗎?

回答

0

這有很多可能的原因。如果你正在做的一個請求的變化,你可能會看到運行中的會話緩存:

https://github.com/objectify/objectify/wiki/Caching

如果你在很多請求進行查詢,你可能會看到的最終一致性的結果:

https://cloud.google.com/datastore/docs/articles/balancing-strong-and-eventual-consistency-with-google-cloud-datastore/

也許你看到會話緩存污染,因爲你沒有安裝ObjectifyFilter?最近的Objectify版本給你一個令人討厭的警告,如果你不這樣做,但也許你正在運行一箇舊版本?

相關問題