0
嗨,我想安排一個任務,每1小時執行一次。安排任務,每1小時運行
但是任務消耗的時間有點「隨機」,這意味着它可能需要30分鐘,或者也可能需要1小時15分鐘。一次只能運行一個任務。
我希望能夠執行任務,如果間隔時間已過,它將直接運行任務,如果沒有經過的時間,它會等到1小時完成。
這樣做的最好方法是什麼?
我開始看看FluentScheduler,但它不允許我用我描述的場景配置一個計劃。
嗨,我想安排一個任務,每1小時執行一次。安排任務,每1小時運行
但是任務消耗的時間有點「隨機」,這意味着它可能需要30分鐘,或者也可能需要1小時15分鐘。一次只能運行一個任務。
我希望能夠執行任務,如果間隔時間已過,它將直接運行任務,如果沒有經過的時間,它會等到1小時完成。
這樣做的最好方法是什麼?
我開始看看FluentScheduler,但它不允許我用我描述的場景配置一個計劃。
感謝您的有用評論,我將探索Quartz.NET它似乎是一個功能強大的調度程序。
我設法做一個小的(一個工作)「調度程序」在每個任務之間的間隔一小時內運行。
我使用TPL.Dataflow,這裏是我的代碼
TransformBlock<int, int> block = new TransformBlock<int, int>(i =>
{
//Thread.Sleep(5000);
DoSomething();
return i + 1;
});
block.LinkTo(block);
block.Post(0);
我知道這是很脆弱的,但它會做的工作。 感謝您的意見!我會探索更多的可能性。
你不能使用Windows調度器?否則你可以看看Quarz.NET。 – Styxxy
如果第一個任務需要* 1h15min *,下一個任務何時開始? –
順便說一句:*「最好的辦法是什麼?」*問題類型讓我總是微笑。你甚至沒有工作方式*,而你要求*最好*。 –