2015-10-15 209 views
0

從Javascript中,我打電話給計算密集型的REST方法。如果您不再對它返回的內容感興趣,是否可以停止該REST調用?是否有可能停止REST呼叫?

我明白,有可能在JS中放棄請求。但它不會停止由於REST調用而觸發的線程。這就是我如何中止JS中的ajax調用。 Abort Ajax requests using jQuery

REST接口是用Java編寫。而且內部這個線程也可能創建多個線程。

我想停止一個Java線程。但來自主叫方。來自JS,我已經觸發它。 How to properly stop the Thread in Java?

+0

假設您使用HTTP進行此操作,您是否嘗試過從您的JS客戶端查找連接關閉的數據包? – Tyzoid

+1

令人困惑的問題...... :( – Jayesh

+0

@Jayesh假設,REST調用需要1小時才能返回值,如果我在15分鐘後不再對結果感興趣,我想中止那個線程,由我引起的。 –

回答

1

正如克里斯在上述意見中提到,REST調用應該是快速的,絕對不是一小時之久。如果服務器需要花費大量時間進行大量工作,則應該將設計修改爲異步。要麼規定,一旦它的完成,服務器將使用一個回調(也稱爲的方法),或每隔幾分鐘,通過發送一個新的請求到服務器,看看它的完成。

爲了實現它,你需要的服務器,以便能夠在回調識別/籤所謂的特定請求的狀態返回一個唯一ID爲每個請求。覆蓋對方 -

的唯一ID應在服務器端,以避免兩個客戶端發送相同的ID來實現。

在我貼出上面可以看到如何實現它可以在服務器端被需要時實施,並呼籲通過客戶端一「停線」機制爲例link

1

您可以發送一個唯一的標識符與您的請求一起,然後發出另一個請求,指示服務器中止爲該ID啓動的操作。