我想通過一個WCF數據服務(Singlton)公開一些端點,它將維護用於響應各個請求的數據集合。WCF數據服務+到期數據(定時器?)
理想情況下,我希望能夠在一段時間後過期(刪除)給定請求的內存中保存的數據。
存儲的數據將用於構建(部分只是,因此開箱即用的緩存不正常)結果集返回給客戶端。數據將來自API的對象,並且必須保存在內存中,而不是存儲到存儲器中。
我正在尋找方法來觸發'清除'過程來檢查過期的數據。在ctor中啓動一個定時器似乎是一個糟糕的主意。它可以針對每個請求運行(啓用單個併發),但這看起來過多,並且可能會在沒有更多請求時將數據留在那裏?
對這個問題的任何想法都表示讚賞。
嘿,感謝您的快速回復。我聽到你在說什麼,但不幸的是,我將要存儲的對象不包含靜態數據,因此將它們保存到數據庫中(除非我對SQLCE/Lite的理解是離開的)不是一種選擇,但存儲對象的方式是沒有任何問題。自定義容器類+ LINQ = :)。我的問題是過程的觸發。正如你指出的那樣,計時器將起作用。我瞭解到Timer會在不同的線程上啓動它的處理程序,從而導致單個服務可能會出現爭用狀況,從而查看它的持續數據收集... – Kyle