springmvc程序启动自动执行定时任务
时间: 2023-11-18 14:00:38 浏览: 118
springmvc中实现quartz定时任务
3星 · 编辑精心推荐
可以通过在Spring MVC配置文件中添加以下代码实现启动自动执行定时任务:
```
<!-- 定时任务配置 -->
<task:scheduler id="scheduler" pool-size="10"/>
<task:annotation-driven scheduler="scheduler"/>
<!-- 定时任务bean -->
<bean id="myTask" class="com.example.MyTask"/>
<!-- 定时任务执行器 -->
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5"/>
<property name="maxPoolSize" value="10"/>
<property name="queueCapacity" value="25"/>
</bean>
<!-- 定时任务配置 -->
<bean id="myTaskScheduler" class="org.springframework.scheduling.support.PeriodicTrigger">
<constructor-arg value="10000"/>
</bean>
<!-- 定时任务调度器 -->
<bean id="myTaskSchedulerFactoryBean" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler">
<property name="poolSize" value="10"/>
<property name="threadNamePrefix" value="myTaskScheduler-"/>
<property name="awaitTerminationSeconds" value="60"/>
<property name="waitForTasksToCompleteOnShutdown" value="true"/>
<property name="scheduledExecutor" ref="taskExecutor"/>
</bean>
<!-- 定时任务注册 -->
<bean id="myTaskRegistrar" class="org.springframework.scheduling.annotation.AnnotationAwareBeanPostProcessor">
<property name="scheduler" ref="myTaskSchedulerFactoryBean"/>
</bean>
```
在上述配置中,`myTask`为定时任务的实现类,`myTaskScheduler`为定时任务配置,`myTaskSchedulerFactoryBean`为定时任务调度器,`myTaskRegistrar`为定时任务注册。其中,`myTaskSchedulerFactoryBean`和`myTaskRegistrar`的`poolSize`属性可以根据实际需求进行调整。
在以上配置完成后,只需要在`myTask`中添加定时任务的方法,并在方法上添加`@Scheduled`注解即可实现自动执行定时任务。例如:
```
@Component
public class MyTask {
@Scheduled(fixedRate = 1000)
public void doTask() {
// 定时任务执行代码
}
}
```
在上述代码中,`@Scheduled(fixedRate = 1000)`表示每隔1秒执行一次定时任务。
阅读全文