windows服務及asp.net中定時任務管理
windows定時計劃任務管理系統quartz.net的使用
CrystalQuartz:
http://www.cnblogs.com/mushroom/p/4231834.html
http://www.cnblogs.com/mushroom/p/4067558.html
CrystalQuartz開源的地址
TaskManager:
http://www.cnblogs.com/chejiangyi/p/4934991.html
TaskManager開源的地址
//加上併發限制
[DisallowConcurrentExecution]
public class HelloJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Console.WriteLine(“Hello ” + DateTime.Now.ToString());
Thread.Sleep(5 * 1000);
}
}
//設定錯失觸發後的排程策略
trigger = newTrigger()
.withIdentity(“trigger2”, “group1”)
.startAt(startTime)
.withSchedule(
simpleSchedule()
.withIntervalInSeconds(3)
.repeatForever()
// 設定錯失觸發後的排程策略
.withMisfireHandlingInstructionNowWithRemainingCount()
)
.build();
CronTrigger
withMisfireHandlingInstructionDoNothing
——不觸發立即執行
——等待下次Cron觸發頻率到達時刻開始按照Cron頻率依次執行
withMisfireHandlingInstructionIgnoreMisfires
——以錯過的第一個頻率時間立刻開始執行
——重做錯過的所有頻率週期後
——當下一次觸發頻率發生時間大於當前時間後,再按照正常的Cron頻率依次執行
withMisfireHandlingInstructionFireAndProceed
——以當前時間為觸發頻率立刻觸發一次執行
——然後按照Cron頻率依次執行
SimpleTrigger
withMisfireHandlingInstructionFireNow
——以當前時間為觸發頻率立即觸發執行
——執行至FinalTIme的剩餘週期次數
——以排程或恢復排程的時刻為基準的週期頻率,FinalTime根據剩餘次數和當前時間計算得到
——調整後的FinalTime會略大於根據starttime計算的到的FinalTime值
withMisfireHandlingInstructionIgnoreMisfires
——以錯過的第一個頻率時間立刻開始執行
——重做錯過的所有頻率週期
——當下一次觸發頻率發生時間大於當前時間以後,按照Interval的依次執行剩下的頻率
——共執行RepeatCount+1次
withMisfireHandlingInstructionNextWithExistingCount
——不觸發立即執行
——等待下次觸發頻率週期時刻,執行至FinalTime的剩餘週期次數
——以startTime為基準計算週期頻率,並得到FinalTime
——即使中間出現pause,resume以後保持FinalTime時間不變
withMisfireHandlingInstructionNowWithExistingCount
——以當前時間為觸發頻率立即觸發執行
——執行至FinalTIme的剩餘週期次數
——以排程或恢復排程的時刻為基準的週期頻率,FinalTime根據剩餘次數和當前時間計算得到
——調整後的FinalTime會略大於根據starttime計算的到的FinalTime值
withMisfireHandlingInstructionNextWithRemainingCount
——不觸發立即執行
——等待下次觸發頻率週期時刻,執行至FinalTime的剩餘週期次數
——以startTime為基準計算週期頻率,並得到FinalTime
——即使中間出現pause,resume以後保持FinalTime時間不變
withMisfireHandlingInstructionNowWithRemainingCount
——以當前時間為觸發頻率立即觸發執行
——執行至FinalTIme的剩餘週期次數
——以排程或恢復排程的時刻為基準的週期頻率,FinalTime根據剩餘次數和當前時間計算得到
——調整後的FinalTime會略大於根據starttime計算的到的FinalTime值
MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT
——此指令導致trigger忘記原始設定的starttime和repeat-count
——觸發器的repeat-count將被設定為剩餘的次數
——這樣會導致後面無法獲得原始設定的starttime和repeat-count值