【发布时间】:2012-08-08 06:45:15
【问题描述】:
我有一个必须安排的任务列表,例如 cron。这是用于 sql server 上的备份。
数据库将以多种组合方式执行 FULL、DIFF、LOGS 备份。
所以:
- 每天早上 8:00 满员
- 每小时不同
- 每 10 分钟记录一次
但是,我有这个问题:
- 如果服务器在上午 8:15 醒来,则不会执行 FULL 任务。
- 如果 FULL 失败,则执行 DIFF & LOG 没有意义
- 如果服务器在星期六早上 8:15 醒来,LOG 开始 8:20 启动,那么完整必须等待下周一。
- 如果 LOG 占用太多(未在上午 9:01 完成),则 DIFF 在 LOG 尚未完成时开始。我不想那样!
我使用quartz.net 执行此操作,但这是切线的-我愿意更改库,删除它等等-。所以我的主要目标是任务顺序/执行的可靠性。
在顺序代码中,这很容易做到:
- DO_FULL 那么
- DO_DIFF 那么
- DO_LOG
但是,使用调度程序这是不可能的(至少使用石英)。
问题在于时间的管理。当任务被标记为每小时开始时,必须更多的是提示而不是硬规则,因为前一个可能没有完成。另外,做 FULL 是开始循环的必要条件。
我不知道这里必须应用算法。
【问题讨论】:
标签: c# .net sql-server scheduled-tasks database-backups