我一直在努力解決這個問題。在C#中管理定時線程.net
在我的網站上,用戶被要求參加測試。當他提交一個答案時,我會調用一個WCF服務,將他的數據推送到數據庫中。這很簡單,但隨着用戶數量的增加,確實會變得數據庫密集。
因此,爲了提高性能(以避免重調用到DB),我有 -
一個。在服務中實施緩存。
b。實現線程(用於異步工作) - 將緩存數據推送到數據庫。
所以,現在,每當有一個呼叫保存答案來了,它在服務緩存存儲數據。同時,我運行一個線程(因爲我只想將數據推送到數據庫一次 - 在用戶測試結束時 - 並將臨時答案數據添加到緩存中),然後返回該呼叫,因爲我不想要用戶不斷等待。我運行的線程必須有15分鐘的超時時間。如果用戶在15分鐘內未提交任何答案,則應將緩存的結果保存到數據庫。直到現在,它很簡單,並設法做到這一點。
我在哪裏卡住的是,如果用戶發送的一些答案,就會調用這些15分鐘內的服務進行,該線程超時應復位到下一個15分鐘。所以,它的一個線程滑動計時器。
我用Google搜索了很多,但似乎沒有辦法跟蹤線程。而且,如果我在每個保存數據請求上創建一個新線程,那麼它只會在數據庫上重現相同的負載。
我覺得,如果可能會有一些方法來跟蹤我第一次開始線程,並相應地操縱它,我就能達到預期的事情。
請指教並提出建議。
緊迫感和感謝
SV
你如何計劃線程超時?你會阻止線程15分鐘嗎?你確定數據庫寫入是你的瓶頸,你有沒有測量? – 2010-12-07 07:16:50