Quartz基础调度框架
Quartz核心的概念:scheduler任务调度、Job任务、Trigger触发器、JobDetail任务细节
结构
Conf 在这个基本结构里 是用来存放配置
public class TestJob : IJob { private static ILog Logger; public void Execute(IJobExecutionContext context) { Logger = LogManager.GetLogger(context.JobDetail.Description); Logger.Info(" 运行!"); Console.WriteLine(context.JobDetail.Description+$""+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } }
配置清单
<!--TestJob测试 任务配置-->
<job>
<name>TestJob</name>
<group>Test</group>
<description>TestJob测试</description>
<job-type>ConsoleApp1.TestJob,ConsoleApp1</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<trigger>
<cron>
<name>TestJobTrigger</name>
<group>Test</group>
<job-name>TestJob</job-name>
<job-group>Test</job-group>
<start-time>2015-11-26T22:19:00+08:00</start-time>
<cron-expression>0/10 * * * * ?</cron-expression>
</cron>
</trigger>
Cron表达式
Seconds
Minutes
Hours
Day-of-Month
Month
Day-of-Week
Year (Optional field)
举例如下:
创建一个每三小时执行的 CronTrigger,且从每小时的整点开始执行:
0 0 0/3 * * ?
表达式意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
源码https://files.cnblogs.com/files/leoxjy/ConsoleApp1.zip