2016-06-21 117 views
2

我有一個Windows服務,每5分鐘後向Web API控制器發出請求。 Web API將從應用程序A中檢索一些數據並處理它,然後將其放入應用程序B.基本上它每隔5分鐘從A開始查找新的和更新的記錄 - 我有不同的記錄類型,間隔可能會有所不同,具體取決於變化的頻率。每條記錄都有一個Modified_Date列。此列將用於從A中檢索數據。我有一個由Windows服務用來觸發請求的表。該表存儲每種記錄類型的最後一次modified_date。因此,每次請求說我檢索1000條記錄,我將獲得這1000條記錄的最大日期,並存儲在數據庫中的下一個請求,然後我將利用這個日期。檢查Web API請求是否完成

現在我的問題有時取決於網絡速度和檢索到的記錄數,在第一個請求仍在執行的同時,五分鐘可能會失效。我不希望第二個請求在第一個請求完成之前啓動。

如何檢查第一個請求是否完成?

+2

你說請求每5分鐘觸發一次。您是否期望應用程序A需要的處理將數據放入應用程序B需要5分鐘? –

+0

應用程序A中的數據檢索有些問題。我懷疑數據庫和/或查詢的設計不好。沒有簡單地檢索幾千條記錄的查詢應該接近5分鐘。我建議你用數據庫和查詢的細節發佈數據庫問題,以幫助你弄清楚爲什麼這麼長時間。 –

+0

@ ext0是的,在某些情況下,我認爲它需要很長時間,因爲它會根據每月的時間產生超過350000 /分鐘的時間。 – Munhu

回答

2

您可以讓單身服務持有一個標誌,檢查前一個請求是否已完成。該請求在啓動時設置標誌結束時釋放該標誌。