quartz定时器依赖_springmvc+quartz 实现定时任务
时间: 2023-12-30 16:01:54 浏览: 211
springmvc+mybatis+动态定时器quartz
实现定时任务可以使用Quartz框架,结合Spring MVC进行整合。下面是具体步骤:
1. 引入依赖
在pom.xml中添加依赖:
```
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
```
2. 配置Quartz
在Spring的配置文件中添加Quartz的配置,如下:
```
<!--配置Quartz-->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">QuartzScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
<prop key="org.quartz.scheduler.jmx.export">true</prop>
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
<prop key="org.quartz.jobStore.dataSource">myDS</prop>
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.isClustered">false</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">10</prop>
<prop key="org.quartz.dataSource.myDS.driver">com.mysql.jdbc.Driver</prop>
<prop key="org.quartz.dataSource.myDS.URL">jdbc:mysql://localhost:3306/quartz?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true</prop>
<prop key="org.quartz.dataSource.myDS.user">root</prop>
<prop key="org.quartz.dataSource.myDS.password">123456</prop>
<prop key="org.quartz.dataSource.myDS.maxConnections">30</prop>
</props>
</property>
<property name="autoStartup" value="true"/>
<property name="startupDelay" value="5"/>
</bean>
```
这里配置了Quartz的数据源,使用的是MySQL数据库。
3. 编写定时任务
创建一个类,实现Quartz的Job接口,如下:
```
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("定时任务执行了");
}
}
```
4. 配置定时任务
在Spring的配置文件中添加对定时任务的配置,如下:
```
<!-- 配置定时任务 -->
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.example.MyJob"/>
</bean>
<bean id="myJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="myJobDetail"/>
<property name="cronExpression" value="0/5 * * * * ?"/>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myJobTrigger"/>
</list>
</property>
<property name="schedulerContextAsMap">
<map>
<entry key="key1" value="value1"/>
<entry key="key2" value="value2"/>
</map>
</property>
<property name="schedulerListeners">
<list>
<bean class="org.springframework.scheduling.quartz.JobListenerFactoryBean">
<property name="name" value="jobListener"/>
</bean>
</list>
</property>
</bean>
```
这里配置了一个每5秒执行一次的定时任务。
5. 启动定时任务
在启动Spring的时候,定时任务会自动启动。也可以在代码中手动启动定时任务,如下:
```
@Autowired
private Scheduler scheduler;
/**
* 启动定时任务
*/
public void startJob() throws SchedulerException {
scheduler.start();
}
```
至此,一个使用Spring MVC和Quartz实现的定时任务就完成了。
阅读全文