2014-09-21 19 views
0

後端系統有可能處於沉重負載下,根據未處理的數據累積積壓。這會導致數據庫中過時的數據。 建議的做法是在API中指出它返回過期的數據? 謝謝, VladREST API中的數據新鮮度策略

+0

您可能可能發送最後修改的標頭或etag。但是我不完全理解這個問題,你能否詳細說明一下? – inf3rno 2014-09-21 22:30:51

+0

當然。如果由於某種原因後端出現故障或服務中斷,則會導致數據庫中的數據過期。例如:轉換次數將會過期,只有在後端將返回投放時纔會縮小差距。問題是如何知道在客戶端是有效的... – VladiF 2014-09-22 14:30:41

+0

通過HTTP客戶端總是可以有陳舊的數據,你不能避免這一點。這就是爲什麼一些ppl在服務器端使用最終的一致性模型並將時間戳添加到響應中的原因。如果你不能立即回覆客戶有關寫作過程的信息,那麼你可以發送一個202 - 接受的標題。但也許我仍然沒有得到這個問題:-) – inf3rno 2014-09-23 03:52:34

回答

0

後端無法知道哪些更新正在等待並通知客戶端。

如果有處理請求的積壓是因爲後端無法提供服務。所以後端不知道哪個請求正在等待。

另一個假設是後端處理更新請求,但推遲了委託給緩存的數據讀取服務。然後,緩存可以通知客戶它所讀取的數據可能已經過時,但是如果不諮詢後端,就不能提供確切的信息,這似乎是你不能做或不想做的。