时间:2021-05-19
在开发测试工具的应用后台,经常听到同事说要做个定时任务把做日志处理,或者数据清理,包括做些复杂的业务计算逻辑,在选择定时任务的时候,怎么能够快速实现,并且选择一种更适合自己的方式呢? 我这里把定时任务的实现收集整理了一些方法,希望可以帮到刚开始做定时任务的同学,写得不对的地方请指正。
一 Java 基本的定时任务,总结方法有三种:
1.1 创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果;
1.2 用Timer和TimerTask与第一种方法相比有如下好处:
1.3 用ScheduledExecutorService是从的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式,相比于上两个方法,它有以下好处:
二 Spring 定时任务,总结方式也有三种:
2.1 ScheduledTimerTask: Spring的ScheduledTimerTask定义了一个定时器任务的运行周期,遗憾的是,你可以指定任务执行的频度,但你无法精确指定它何时运行,这就需要用到第二种Quartz进行任务调度;
创建一个业务任务,在Spring配置文件中声明 ;
在Spring 配置文件中,配置ScheduledTimerTask ,并且关联上自定义的任务实例;
启动定时器,Spring的TimerFactoryBean负责启动定时任务
2.2 使用 Quartz:
首先还是老样子定义业务逻辑任务:
在Spring中声明并且配置作业调度的触发方式
这里 Quartz的作业触发器有两种,分别是
org.springframework.scheduling.quartz.SimpleTriggerBean
org.springframework.scheduling.quartz.CronTriggerBean
第一种SimpleTriggerBean,只支持按照一定频度调用任务,如每隔一段时间运行一次。
第二种CronTriggerBean,支持到指定时间运行一次,如每天12:00运行一次,如上配置;
配置调度工厂
org.springframework.scheduling.quartz.SchedulerFactoryBean,代码如上;
启动你的应用即可
2.3 使用 Spring-Task
Spring自带的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种:
第一步:编写任务类;TaskJob,method job1 --代码省略
第二步:在spring配置文件头中添加命名空间及描述
以上就是本文的全部内容,希望对大家的学习有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.定时任务实现方式定时任务实现方式:Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方
1.定时任务实现方式定时任务实现方式:Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方
一、定时任务实现的几种方式:Timer这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这
Spring中常用的定时任务的主要有两种1、Spring整合QuartzJob2、Spring3.0以后自带的Task一、两种定时任务的实现方式Quartzjo
java中Springtask定时任务的深入理解在工作中有用到springtask作为定时任务的处理,spring通过接口TaskExecutor和TaskSc