quartz使用maven管理的jar
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging quartz依赖的包 --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-collections/commons-collections quartz依赖的包 --> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version> </dependency>
quartz使用spring配置的两种方式
一种是org.springframework.scheduling.quartz.CronTriggerFactoryBean方式,配置指定的时间执行一次任务,如
<property name="cronExpression" value="0 0 */2 * * ? *" />就是30分钟执行一次;
一种是org.springframework.scheduling.quartz.SimpleTriggerFactoryBean方式,配置间隔多长时间执行一次任务,如<property name="repeatInterval" value="3000" />就是指定3秒执行一次任务;
二者是有区别的,CronTriggerBean可以指定在某个点执行任务,而SimpleTriggerBean似乎是做不到的,譬如你指定每天的凌晨23:59:59秒执行任务,只能用CronTriggerBean了。
现在如果你想项目启动的时候就执行任务,后面就按照指定的时间执行任务的话,就需要二者配合使用了。
我的项目是springmvc框架,在web.xml中做如下配置: