您好我想安排一个每1小时执行一次的任务。
但是,任务消耗的时间有点“随机”,这意味着它可能需要30分钟,或者也可能需要1小时15分钟。一次只能运行一个任务。
我希望能够执行任务,如果间隔时间过去,它将直接运行任务,如果时间没有过去,它将等到1小时完成。
这样做的最佳方式是什么?
我开始关注FluentScheduler,但它不允许我使用我描述的方案配置时间表。
答案 0 :(得分: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);
我知道这很脆弱,但它会完成这项工作。 感谢您的评论!我会探索更多的可能性。