2013-09-28 66 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); 

我知道这是很脆弱的,但它会做的工作。 感谢您的意见!我会探索更多的可能性。

相关问题