2010-03-14 38 views
2

有沒有一種方法我可以計算出當前的請求到達應用程序引擎的時間的時間?谷歌應用程序引擎 - 找出當前請求達到app引擎

例如,用戶可能向我的應用程序發出請求,但由於應用程序引擎延遲,我的代碼可能無法在一秒鐘後開始處理請求,是否有方法可以確定用戶已經不得不等一秒鐘?

我想知道如何做到這一點的原因是因爲我想要做的基礎上,如果用戶已經不得不等待不同的事情。如果用戶已經不得不等待很長時間,那麼我只會爲他們提供一頁緩存,如果用戶不必等待,那麼我會爲他們提供一個需要一段時間才能呈現的頁面。

回答

1

短期和不令人滿意的回答你的問題是,不,你不能找出多久用戶等待。

有在服務器時鐘的一致性的應用程序引擎沒有保證。您可以嘗試計算從客戶端時鐘到服務器時鐘的漂移,並將該漂移作爲參數與客戶端時間戳一起提交。但是,由於不能保證服務器內部的時間一致性,因此該漂移僅適用於您計算的服務器。我相信你能得到的最接近的是從服務器計算出的基於幾個延遲樣本和返回時間戳的漂移時間,但只要服務器改變你的計算就不再準確。

簡單的採樣時間時,請求到達時不會幫助你要麼以來,特別是在應用程序引擎的冷啓動將導致延遲增加無法通過你的代碼是衡量。

+0

你的答案是照明,但如果你說「漂移」我想你的意思是「增量」。對於這個問題,漂移可能會被忽略。 – Tom 2013-01-21 16:56:15

0

您可以發送帶請求的時間戳參數並測量差異,但要確保您必須從服務器發送時間戳,在客戶端中增加時間戳,將其發回,計算時間戳之間的差異和服務器上的當前時間,將其分爲2(因爲您有2個請求,一個設置時間戳,一個檢索它)。但這只是粗略的計算。