我有一个必须安排的任务列表,就像cron一样。这适用于sql server上的备份。
数据库将以多种组合执行FULL,DIFF,LOGS备份。
所以:
但是,我有这个问题:
我用quartz.net做这个,但这是切向的 - 我愿意改变lib,删除它等等。所以我的主要目标是任务的顺序/执行的可靠性。
在顺序代码中,这很容易做到:
但是,使用调度程序时,这是不可能的(至少使用石英)。
问题在于时间的管理。当任务被标记为每小时开始时,必须比硬规则更多提示,因为前一个可能没有完成。此外,FULL是开始循环的必要条件。
我想知道必须在这里应用算法。
答案 0 :(得分:0)
最简单的解决方案是编写一个Windows服务(按设计,连续运行)。
答案 1 :(得分:0)
您需要跟踪已执行的任务。例如,要运行DIFF,必须先执行FULL。要实现此目的,请启动任务并将FULL状态设置为false。当FULL完成其工作时,将状态设置为true。当DIFF运行的时间到来时,它会检查FULL是否准备就绪(基于FULL生成的真值或假值)。如果不是,则DIFF只等待FULL发出已完成其工作的信号(真)。 LOG运行也是如此。这是实现顺序行为的简单方法。