**
定时任务实现的两种方式
**
1.xml配置方式
<!-- 自动调度需要扫描的包 -->
<context:component-scan base-package="com.thinkgem.jeesite.modules.api.web.khtx"/>
<!-- 配置bean -->
<bean id="CallRemindController" class="com.thinkgem.jeesite.modules.api.web.khtx.CallRemindController"></bean>```
<!-- 计划任务配置,用 @Component标注类
<!-- 定时器开关 -->
<task:executor id="executor" pool-size="10"/>
<task:scheduler id="scheduler" pool-size="10"/>
<!--配置启动定时器-->
<task:annotation-driven scheduler="scheduler" executor="executor" proxy-target-class="true"/>
<!-- 配置调度 需要在类名前添加 @Component -->
<task:scheduled-tasks>
<task:scheduled ref="CallRemindController" method="saveMessage" cron="0 0 2 * * ?"/>
/task:scheduled-tasks>
#### 1.1任务调度器的配置详细参数说明:
id属性用作线程池中线程的前缀名
task:scheduler/@pool-size:调度线程池的大小,调度线程在被调度任务完成前不会空闲
task:scheduled/@cron:cron表达式,注意,若上次任务未完成,即使到了下一次调度时间,任务也不会重复调度
上述定时器配置已经完成,接下来写入代码。
package com.thinkgem.jeesite.modules.api.web.khtx;
@Component
public class CallRemindController {
public void saveMessage(){
system.out.printIn("定时任务完成了哦")
}
}
2.注解方式实现定时任务
<context:annotation-config />
<!-- 自动调度需要扫描的包 -->
<context:component-scan base-package="com.thinkgem.jeesite.modules.api.web.khtx,com.thinkgem.jeesite.modules.bfrw.web" ></context:component-scan>
<!-- 定时器开关 -->
<task:executor id="executor" pool-size="10"/>
<task:scheduler id="scheduler" pool-size="10"/>
<task:annotation-driven executor="executor" scheduler="scheduler"/>
2.1启用定时任务需要在SpringBoot启动类上加上
@EnableScheduling
这个注解的作用是发现
@Scheduled
测试代码如下
@EnableScheduling
@@RestController
public class CallRemindController {
@Scheduled (cron ="0 0 2 * * ?")
public void saveMessage(){
system.out.printIn("定时任务完成了哦");
}
}
版权声明:本文为weixin_44890199原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。