我有一個.NET Windows服務,它有一個間隔設置爲10秒的計時器。每10秒鐘查詢數據庫以完成任何工作,挑選前3個工作項並處理它們。處理每個工作項目所需的時間取決於用戶。它可能從幾秒到幾分鐘不等。什麼是最佳的計時器間隔? .NET Windows服務
我覺得10秒太短。我選擇了一個較低的時間間隔,因爲用戶正在等待流程完成(他們在前端看到了一個進度條),並且服務獲得工作的速度越快越好。此外,工作項目的數量(三個)隨機挑選。
我確實在我的代碼中「鎖定(this)」,以防止一個線程跨越另一個線程。生產環境中的持續時間短爲10秒嗎?
編輯:另外,它是否有意義,我每次只挑選3件物品進行處理。
如果您的計時器每10秒運行一次,但由於某些原因需要30秒來處理請求,會發生什麼情況? – 2010-01-26 20:44:42
完全取決於完成查詢和通信步驟需要多長時間(只需查詢數據庫是否爲本地服務)以及該過程是如何資源密集型的。 – Jay 2010-01-26 20:45:14
我忘記提及查詢數據庫並不是它唯一的功能,它也啓動了一個可能需要幾分鐘的過程 – Nick 2010-01-26 20:46:25