2014-02-13 48 views
0

如果我們用2-3秒的間隔觸發多個適配器調用,那麼如何停止在後臺運行的第一個調用IBM Worklight 6.1如何在撥打第二個適配器時停止第一個適配器調用

比方說: 我打電話A-Adapter,成功之後,但在同一時間2-3秒的間隙提供了一些數據,如果我叫B-Adapter這給毫秒內一些小的數據。

但仍然第一個適配器調用需要時間並在4秒後迴應或假定超時。現在我們在B-Adapter成功後獲得A-Adapter的成功或失敗。

現在我的疑問是

我們可以停止或在某個時間點取消第一適配器調用任何需要的時候?

這樣做有沒有在worklight的東西?

我們現在面臨的問題是以下給出的主要問題。

比方說:

我打電話登錄適配器,它提供了登錄成功或失敗,它正在採取一些一次讓說5分鐘。所以我做了什麼我關閉了應用程序,並再次啓動應用程序。 我再次點擊登錄,我正在成功登錄,現在我在應用程序內部並做了一些工作。現在在這個時候,我正在獲得登錄適配器的失敗響應,這需要時間。

回答

0

您的直接問題的答案是,不,沒有API可以讓您終止正在進行的適配器過程調用,並在它自己完成之前終止。一旦調用適配器過程,它必須成功,失敗或超時。

如果您在B適配器之後討論A-適配器修整的可能性,我無法判斷您是否只是將其作爲對可能發生的情況的觀察,或者如果您將其視爲問題或錯誤 - 如果是後者,您應該明白,由於適配器過程調用是完全異步的,因此不能保證適配器過程將按調用順序完成,並且不打算做出任何此類保證。

爲了處理您所描述的問題,我建議使用invocationContext來確保當您的成功或失敗回調觸發時,這對應於您期望的適配器過程調用如果沒有,則迴應並忽略結果。有關更多信息,請參閱介紹the options Object的Worklight信息中心部分。

如果適配器過程的通常「正常」響應時間很短,您還可以嘗試通過將過程調用超時設置爲少量時間來緩解此問題。因此,例如,如果適配器過程通常在大約4秒內完成,那麼可以將超時設置爲15秒 - 假設,如果適配器過程在該時間量之後尚未完成,則某些錯誤(可能是後端你從中檢索數據的系統已經掛起或崩潰了,或者類似的東西),它最終會失敗,所以只要讓它返回超時失敗並放棄。這樣,你不必擔心在幾分鐘後最終失敗時會發生什麼......過去曾詢問過another StackOverflow question,在那裏解釋瞭如何改變這個超時。

相關問題