2012-02-02 88 views
1

場景: 用戶都/ DB有時會使用移動設備用壞comm.link將數據寫入到我的web應用程序(GPRS)GWT-RPC超時過期

正如我不希望重複的數據,有沒有超時的他們的寫作要求,但這意味着他們有時會等待很長時間纔會發出異響。

通過RpcRequestBuilder,我可以爲RPC請求添加一個超時,但是如果它到期,是否有任何方法可以知道數據是否存儲,並且如果即使請求沒有達到服務器?

如果它不是我看到實現這一目標的唯一方法,那就是通過我的數據庫中的唯一約束。

提前

回答

1

泰 - 如果請求與超時失敗,只有100%的方式來知道它是否能夠保存有效載荷數據,是再次提出請求,看看是否對數據進行正確保存。

+0

通過設置瘋狂的低超時值(LAN中5ms)做了我自己的測試。結果的確是,有時它將數據存儲在服務器中,但在響應到達客戶端之前超時已過期。 – jpp1jpp1 2012-02-27 17:42:40

0

這個狀態應該被稱爲UNKNOWN狀態。在開發客戶端/服務器和多層應用程序時,不僅會遇到這個問題,而且還會遇到服務器端的錯誤處理問題。您需要將您的呼叫分類到服務器,我喜歡這樣,交易,查詢和重要。交易是您的情況發生了什麼(在服務器中會發生一些變化或更新),以防止這種類型的呼叫發生此類故障,我通知用戶我們在處理他/她的請求時丟失了連接,並且我還通知他/她在重新執行操作之前需要仔細檢查事務(如果您有主鍵或引用,則可以在用戶的​​行爲中執行此操作)。對於諮詢電話,我只是忽略並再次打電話,對於最後一種類型,通常是查詢,但對於應用程序的工作很重要,所以我以不同的方式處理它。

這就是爲什麼擁有呼叫分類概念很重要。

Alaa