2013-09-28 64 views
0

嗨,我想安排一個任務,每1小時執行一次。安排任務,每1小時運行

但是任務消耗的時間有點「隨機」,這意味着它可能需要30分鐘,或者也可能需要1小時15分鐘。一次只能運行一個任務。

我希望能夠執行任務,如果間隔時間已過,它將直接運行任務,如果沒有經過的時間,它會等到1小時完成。

這樣做的最好方法是什麼?

我開始看看FluentScheduler,但它不允許我用我描述的場景配置一個計劃。

+4

你不能使用Windows調度器?否則你可以看看Quarz.NET。 – Styxxy

+2

如果第一個任務需要* 1h15min *,下一個任務何時開始? –

+2

順便說一句:*「最好的辦法是什麼?」*問題類型讓我總是微笑。你甚至沒有工作方式*,而你要求*最好*。 –

回答

0

感謝您的有用評論,我將探索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); 

我知道這是很脆弱的,但它會做的工作。 感謝您的意見!我會探索更多的可能性。

相關問題