1. 程式人生 > >windows服務及asp.net中定時任務管理

windows服務及asp.net中定時任務管理

windows定時計劃任務管理系統quartz.net的使用

asp.net使用Hangfire開發後臺定時任務demo

使用C#製作Windows服務和安裝程式

quartz.net的真實使用

Quartz.net開源作業排程框架使用

Quartz.net持久化與叢集部署開發

Cron表示式使用


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值