我有一個依賴於REST服務的ASP.NET應用程序(MVC 4,C#)。一個服務應該是一個緩慢的服務(我們不確定它會在第一次或第二次調用後返回正確的結果)。所以我必須在一定的延遲中多次調用它,直到狀態爲Success或循環結束。多次調用相同的服務有延遲
這個調用實際上是後端調用序列的一部分。在這些操作過程中用戶不能做任何事情(他應該等待)。所以沒有辦法從客戶端改進這個問題。我認爲使用SignalR等是沒有道理的。
這是一個不使用Azure的商業而非開源的多用戶應用程序。
您能否就此類問題的最佳做法給我建議?
有關問題示例代碼(只是一個樣本,以顯示邏輯是的,我知道了Thread.Sleep在服務器端的東西真的不好。):
int count = 0;
while (count < 10)
{
Thread.Sleep(3000);
result = CallService();
if (result != null && result.State == ServiceState.Success)
return true;
count++;
}
更新:一會兒我們計劃在JS方面推遲延期。如果你想有沒有JS使用一些漂亮的解決方案,我會很感激的
的時刻,我會添加更多的細節 –