quartz介绍
在我们的项目中,经常会遇到某个任务需要在特定的时间点执行,这个时间点可能是每天的某分某秒,可能是一周的指定某个星期某个时间等;quartz就是实现这样一个复杂任务调度逻辑的框架。
官方介绍:http://www.quartz-scheduler.org/
quartz实现
quartz实现比较简单。
1. Ijob接口实现
public interface IJob { void Execute(IJobExecutionContext context); }
2. 配置调度策略
<?xml version="1.0" encoding="UTF-8"?> <!-- This file contains job definitions in schema version 2.0 format --> <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> <processing-directives> <overwrite-existing-data>true</overwrite-existing-data> </processing-directives> <schedule> <job> <!--任务名称--> <name>JobTest</name> <!--任务分组--> <group>Test</group> <description>元叹测试quartz</description> <!--任务命名控件.类名,类名--> <job-type>QuartzTest.JobTest, QuartzTest</job-type> <durable>true</durable> <recover>false</recover> </job> <trigger> <!--简单模式,隔一段时间执行一次,可配执行次数--> <simple> <!--调度名称--> <name>sampleSimpleTrigger</name> <!--调度分组--> <group>simplegroup</group> <!--调度描述--> <description>Simple trigger to simply fire sample job</description> <!--作业名称,job节点对应名称--> <job-name>JobTest</job-name> <!--作业分组,job节点对应分组--> <job-group>Test</job-group> <misfire-instruction>SmartPolicy</misfire-instruction> <!--重复执行次数,执行次数=此值+1--> <repeat-count>2</repeat-count> <!--执行间隔时间,毫秒单位--> <repeat-interval>2000</repeat-interval> </simple> <cron> <name>TestJobTrigger</name> <group>Test</group> <job-name>JobTest</job-name> <job-group>Test</job-group> <!--开始调度时间,大于当前时间忽略--> <start-time>2015-11-26T22:19:00+08:00</start-time> <!--cron表达式--> <cron-expression>0/3 * * * * ?</cron-expression> </cron> </trigger> </schedule> </job-scheduling-data>
时间: 2024-10-28 17:03:26