一. 前言

最近在公司的项目中用到了定时任务, 本篇博文将会对TimerTask定时任务进行总结, 其实TimerTask在实际项目中用的不多,
因为它不能在指定时间运行, 只能让程序按照某一个频度运行.
二. TimerTask
JDK中Timer是一个定时器类, 它可以为指定的定时任务进行配置.
JDK中TimerTask是一个定时任务类, 该类实现了Runnable接口, 是一个抽象类, 我们可以继承这个类, 实现定时任务.
/**
* 继承TimerTask实现定时任务
*/
public class MyTask extends TimerTask {
@Override
public void run() {
String currentTime = new SimpleDateFormat("yyy-MM-dd hh:mm:ss").format(new Date());
System.out.println(currentTime + " 定时任务正在执行...");
}
public static void main(String[] args) {
Timer timer = new Timer();
// 1秒钟执行一次的任务, 参数为: task, delay, peroid
timer.schedule(new MyTask(), 2000, 1000);
}
}
三. 整合Spring
两个核心类: ScheduledTimerTask, TimerFactoryBean
ScheduledTimerTask类是对TimerTask的包装器实现, 通过该类可以为这个任务定义触发器信息.
TimerFactoryBean类可以让Spring使用配置创建触发器, 并为一组指定的ScheduledTimerTask bean自动创建Timer实例.
1. 引入Jar包: spring.jar, commons-logging.jar
2. 定时调度业务类:
/**
* 定时调度业务类
*/
public class TaskService extends TimerTask {
private int count = 1;
public void run() {
System.out.println("第" + count + "次执行定时任务");
count++;
}
}
3. 核心配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="taskService" class="com.zdp.service.TaskService"></bean>
<bean id="scheduledTimerTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="taskService" />
<!-- 每隔一天执行一次配置: 24*60*60*1000 -->
<!-- 每1秒钟程序执行一次 -->
<property name="period" value="1000" />
<!-- 程序启动4秒钟后开始执行 -->
<property name="delay" value="4000" />
</bean>
<bean id="timerFactoryBean" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTimerTask" />
</list>
</property>
</bean>
</beans>
4. 测试类:
public class Main {
public static void main(String[] args) {
// 加载spring配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("<<-------- 启动定时任务 -------- >>");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
try {
if (reader.readLine().equals("quit")) {
System.out.println("<<-------- 退出定时任务 -------- >>");
System.exit(0);
}
} catch (IOException e) {
throw new RuntimeException("error happens...", e);
}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Spring
# TimerTask
# 定时任务
# SpringBoot2 task scheduler 定时任务调度器四种方式
# Spring Task任务调度的实现示例
# 是一个
# 不多
# 能在
# 我们可以
# 能让
# 会对
# 它可以
# 并为
# 它不
# 每隔
# 配置文件
# 大家多多
# 博文
# 实现了
# 加载
# 抽象类
# 在实际
# delay
# task
# timer
相关文章:
招商网站制作流程,网站招商广告语?
如何在阿里云香港服务器快速搭建网站?
网站图片在线制作软件,怎么在图片上做链接?
如何在Windows 2008云服务器安全搭建网站?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
建站之星如何取消后台验证码生成?
如何通过网站建站时间优化SEO与用户体验?
建站之星代理商如何保障技术支持与售后服务?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
测试制作网站有哪些,测试性取向的权威测试或者网站?
建站之星×万网:智能建站系统+自助建站平台一键生成
已有域名和空间如何快速搭建网站?
如何快速查询网站的真实建站时间?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何选择靠谱的建站公司加盟品牌?
如何获取PHP WAP自助建站系统源码?
小型网站建站如何选择虚拟主机?
如何在云主机上快速搭建网站?
如何选择服务器才能高效搭建专属网站?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
如何在建站之星绑定自定义域名?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站之星2.7模板快速切换与批量管理功能操作指南
在线制作视频网站免费,都有哪些好的动漫网站?
网站制作新手教程,新手建设一个网站需要注意些什么?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何在Ubuntu系统下快速搭建WordPress个人网站?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
专业公司网站制作公司,用什么语言做企业网站比较好?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
建站之星安装提示数据库无法连接如何解决?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
如何通过WDCP绑定主域名及创建子域名站点?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
公司门户网站制作流程,华为官网怎么做?
建站主机是否属于云主机类型?
如何确保西部建站助手FTP传输的安全性?
,在苏州找工作,上哪个网站比较好?
广州美橙建站如何快速搭建多端合一网站?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
建站之星安装需要哪些步骤及注意事项?
太平洋网站制作公司,网络用语太平洋是什么意思?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何用VPS主机快速搭建个人网站?
如何构建满足综合性能需求的优质建站方案?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
大连 网站制作,大连天途有线官网?
*请认真填写需求信息,我们会在24小时内与您取得联系。