我得到了一個訂閱數據庫,我想爲每個訂閱從一次到另一個每x分鐘運行一次。在一個應用程序(.Net C#)中的計劃任務
但是每個訂閱都有自己的時間和時間+它應該每運行x分鐘應該運行哪個函數。
它可以是許多同時運行的訂閱。
也許它應該看起來像一個計劃任務,開始於一個特定的時間,並運行每x分鐘到一個特定的時間。
我希望我能描述自己想做的事情,我的英語不是最好的。
有沒有人有任何想法如何構建應用程序待辦事項?
我得到了一個訂閱數據庫,我想爲每個訂閱從一次到另一個每x分鐘運行一次。在一個應用程序(.Net C#)中的計劃任務
但是每個訂閱都有自己的時間和時間+它應該每運行x分鐘應該運行哪個函數。
它可以是許多同時運行的訂閱。
也許它應該看起來像一個計劃任務,開始於一個特定的時間,並運行每x分鐘到一個特定的時間。
我希望我能描述自己想做的事情,我的英語不是最好的。
有沒有人有任何想法如何構建應用程序待辦事項?
你可能正在描述什麼Quartz.NET可以爲你做。檢查一下,這可能值得花一些時間。
你有一對夫婦的選擇,在這裏:
您提到了scheduled tasks,這可能是另一種選擇,但這需要您自動設置新任務以及要運行的實際任務。這兩個方法都比較容易處理上面列出的選項。
我建議你使用System.Threading.Timer
。要安排工作,請執行以下操作:
new Timer(_ => DoTheJob()).Change(your_interval_in_milliseconds, Timeout.Infinite);
然後當作業完成後,使用相同的代碼安排下次運行。這會阻止同時運行同一作業的2個實例。 請讓我知道如果這沒有適當地回答你的問題。
所以你應該寫一些調度器。它將從隊列中取出任務並執行它們......您可以創建一個調度程序,以便例如每個任務都可以在單獨的線程中運行,並且會顯着提高性能!
測試Quartz.NET,但得到一些問題,看看你是否有任何想法:http://stackoverflow.com/questions/8639085/quartz-net-beta-throws-an-exception-when-i-try -testcode功能於自己的項目 – RickardP 2011-12-26 21:01:36