定时器任务
程序员文章站
2022-06-09 09:17:17
...
1、引入支持定时任务的jar包
<!-- 定时调度(定时任务) -->
<dependency>
<groupId>quartz</groupId>
<artifactId>quartz</artifactId>
<version>1.5.2</version>
</dependency>
2、原生定时
@Test
public void time() throws Exception {
// 定时器
Timer timer = new Timer();
// 开启定时任务(子线程)
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(new Date().toLocaleString());
}
}, 0, 1000);// 0:立即执行,1000:间隔1秒
// 让主线程处于运行状态
Thread.sleep(5000);
}
3、使用OpenSymphony Quartz 任务调度
3.1 定时器的配置文件
<!--引入定时器配置-->
<import resource="classpath:applicationContext-timer.xml"/>
定时器配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
<!-- cron表达式:在每天早上8点到晚上8点期间每1分钟触发一次 -->
<!--value>0 0/1 8-20 * * ?</value -->
<!-- cron表达式:每5分钟触发一次 -->
<!-- <value>0 0/5 * * * ?</value> -->
<task:scheduled-tasks>
<!-- 执行workService里面的work方法,执行频率是cron表达式 -->
<!--每周每月每小时的50,51分每秒执行-->
<task:scheduled ref="workService" method="work" cron="0 50,51 * * * ? " />
</task:scheduled-tasks>
</beans>
3.2 效果
import com.yyw.aisell.service.IWorkServie;
import org.springframework.stereotype.Service;
@Service("workService") //自定义定时器配置的名字(不写默认就是类型首字母小写)
public class WorkServiceImpl implements IWorkServie {
@Override
public void work() {
System.out.println("定时器执行");
}
}