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 *,下一个任务何时开始? –
顺便说一句:*“最好的办法是什么?”*问题类型让我总是微笑。你甚至没有工作方式*,而你要求*最好*。 –