首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java定时任务实现的几种方式注解(JAVA定时任务)

摘要: 在开发测试工具的应用后台,经常听到同事说要做个定时任务把做日志处理,或者数据清理,包括做些复杂的业务计算逻辑,在选择定时任务的时候,怎么能够快速实现,并且选择一种更适合自己的方式呢?...我这里把定时任务实现收集整理了一些方法,希望可以帮到刚开始做定时任务的同学,写得不对的地方请指正。...我这里把定时任务实现收集整理了一些方法,希望可以帮到刚开始做定时任务的同学,写得不对的地方请指正。...一 Java 基本的定时任务,总结方法有三种: 1.1 创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果; 1.2 用Timer...是从的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式,相比于上两个方法,它有以下好处: 相比于Timer的单线程,它是通过线程池的方式来执行任务

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java定时任务

    java中一个完整定时任务需要由Timer、TimerTask两个类来配合完成。 API中是这样定义他们的,Timer:一种工具,线程用其安排以后在后台线程中执行的任务。...我们可以这样理解Timer是一种定时器工具,用来在一个后台线程计划执行指定任务,而TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。...执行结果为: 指定时间time=Tue Jun 10 11:39:00 CST 2014指定时间执行线程任务… 在延迟指定时间后以指定的间隔时间循环执行定时任务 public class TimerTest03...Timer的缺陷 Timer的缺陷 Timer计时器可以定时(指定时间执行任务)、延迟(延迟5秒执行任务)、周期性地执行任务(每隔个1秒执行任务),但是,Timer存在一些缺陷。....java:25) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java

    2K20

    Java 定时任务

    还没真正的遇到使用定时任务的场景,不管怎么说先学起来 1. 定时任务 很多情况下任务并非需要立即执行,而是需要往后或定期执行,这不可能人工去操作,所以定时任务就出现了。...Thread实现 笔试中首次遇到定时任务急急忙忙想出来的方法 2.1 使用 public class ThreadSchedule { public static void main(String...ScheduledExecutorService java.util.concurrent中的工具类,是一个多线程的定时器 4.1 使用 public class ExecutorSchedule {...执行器就是定时任务,而调度中心则负责管理调用这些定时任务,调度中心也可以存储定时任务通过脚本形式(Java 是 Grovvy)免编译地实时下发到各服务中执行。...在需要定时任务的服务中 引入依赖、添加配置、创建定时任务 6.3.1 依赖 <!

    2.9K30

    java定时任务

    引言:知易行难 这里我推荐使用第一种,Spring定时任务,简单又简介,高效 一、Spring定时任务 基于springboot创建一个项目,使用定时任务很简单 俩步即可实现 1、启动类上加注解@EnableScheduling...注解开启定时任务 2、方法上加注解@Scheduled设置任务执行时间 示例 默认是单线程的定时任务 @Scheduled(fixedDelay =5*1000 ) // 每隔五秒执行一次 单位毫秒...多线程实现,也很简单 1、启动类上开启异步注解 @EnableAsync 2、在定时任务的方法上加注解,设置异步执行 @Async 示例:每三秒执行一次 @Scheduled(cron ="0/3...专有符号:在Spring定时任务中,除了问号,其他都不支持! ?...// 参数1 timerTask对象 定时任务对象 // 参数2 任务什么时候启动 // 参数3 执行任务的时间间隔 timer.schedule(new TimerTask

    22630

    Java 定时任务实现原理详解

    在jdk自带的库中,有两种技术可以实现定时任务。一种是使用Timer,另外一个则是ScheduledThreadPoolExecutor。下面为大家分析一下这两个技术的底层实现原理以及各自的优缺点。...实现原理+源码解析 由于ScheduledThreadPoolExecutor是基于线程池实现的。所以了解它的原理之前读者有必要先了解一下Java线程池的实现。...关于Java线程池的实现原理,可以看我的另外一篇博客:Java线程池实现原理详解 我们直接来看一下的源码 public ScheduledFuture<?...当worker要去队列获取任务时,如果堆顶的执行时间还没到,那么worker就会阻塞一定时间后才能获取到那个任务,这样就实现任务的延迟执行。...总结 ScheduledThreadPoolExecutor的实现是基于java线程池。通过对任务进行一层封装来实现任务的周期执行,以及将任务队列改成延迟队列来实现任务的延迟执行。

    82610

    实现定时任务

    1 问题 定时任务中,每天统计一下今日博客的各项数据,并以邮件的形式发送给自己。 2 方法 .首先在某目录下新建任务文件 crontest.cron,用于存在定时任务语句。...编辑 crontest.cron 文件,修改为 5,10,15,20,25,30,35,40,45,50,55,59 * * * * python hello.py >> ~/1.txt开始执行定时任务...message.as_string()) print("邮件发送成功")except smtplib.SMTPException: print("Error: 无法发送邮件") 3 结语 一切复杂的任务都应该从最简单的开始...,在理解基本过程后,就可以开始定时运行python脚本了。...在解决了上面的定时任务后,需要解决写代码了,代码同样非常简单相关数据,这里需要在这篇博客的基础上加一些自己的特殊功能。

    19330

    Java定时器_JAVA定时任务

    ") public void myTask(){ //定时任务...... } ---- 2.quartz quartz使用的是可配置的方式,将所有的定时器都配置再一个...步骤如下: 1.创建一个spring的配置文件:spring-quartz.xml 2.定义工作任务的job 3.定义触发器Trigger并与job绑定 4.定义调度器,并将Trigger注册到scheduler...-- 1.定义工作任务job --> <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean...--- 3.使用Timer 使用Timer的schedule,schedule有3个参数: schedule(TimerTask task, long delay, long period) 第一个为<em>定时</em><em>任务</em>...} },0,5L * 60 * 1000); ---- 4.使用线程控制 使用线程来控制就更灵活一些,可以根据自己的需要判断什么时候运行,什么时候停止,这需要对<em>java</em>

    86210

    Java & Go 定时任务

    当然列举的这几个有些宽泛,在实际开发当中,会有多种多样的定时任务场景。下面我们先来看看 Java 语言都有哪些实现定时任务的类库。...Java 语言实现定时任务 相信很多小伙伴接触最多的定时任务就是定时自动化回归测试了。通常会有专门的开发和测试框架来完成具体的设置和执行定时任务。...在 Java 语言中,实现定时任务有几种常用的方法: java.util.Timer 类:这是Java标准库提供的一个类,可以用来安排任务以后在后台线程中执行。...java.util.Timer 利用 Spring 框架支持相对来说比较常见。下面我写了一个 java.util.Timer 实现每秒打印一次时间的定时任务的简单案例。...Go 语言定时任务 Go 语言定时任务实现,也是比较简单的也是利用 Go SDK 自带的 time 包。

    16210

    深入 Java Timer 定时任务调度器实现原理

    使用 Java 来调度定时任务时,我们经常会使用 Timer 类搞定。...Timer 简单易用,其源码阅读起来也非常清晰,本节我们来仔细分析一下 Timer 类,来看看 JDK 源码的编写者是如何实现一个稳定可靠的简单调度器。 ?...Timer 使用 Timer 调度任务有一次性调度和循环调度,循环调度有分为固定速率调度(fixRate)和固定时延调度(fixDelay)。...而固定时延的意思是你必须睡够 8 个小时再过来上班,如果你加班到凌晨 6 点,那就可以下午过来上班了。固定速率强调准点,固定时延强调间隔。...如果你有一个任务需要每隔几分钟跑一次,那就使用固定时延调度,它不是很在乎你的单个任务要跑多长时间。 内部结构 Timer 类里包含一个任务队列和一个异步轮训线程。

    1.2K30

    Java定时任务调度详解

    JDK原生定时工具:Timer 定时任务调度:基于给定的时间点、给定的时间间隔、给定的执行次数自动执行的任务。...Timer位于java.util包下,其内部包含且仅包含一个后台线程(TimeThread)对多个业务任务(TimeTask)进行定时定频率的调度。...delay:执行task任务前的延时时间,单位是毫秒 很显然,通过上述的描述,我们可以实现: 延迟多久后执行一次任务;指定时间执行一次任务;延迟一段时间,并周期性执行任务;指定时间,并周期性执行任务;...Quartz是纯Java实现,而且作为Spring的默认调度框架,由于Quartz的强大的调度功能、灵活的使用方式、还具有分布式集群能力,可以说Quartz出马,可以搞定一切定时任务调度!...7、Quartz存在监听器的概念,比如任务执行前后、任务的添加等,可以方便实现任务的监控。 CronTrigger示例 ? ? ? 这里给出一些常用的示例: 0 15 10 ?

    2.1K71

    java定时任务之quartz

    二、Quartz中的概念   主要有三个核心概念:调度器、任务和触发器。三者关系简单来说就是,调度器负责调度各个任务,到了某个时刻或者过了一定时间,触发器触动了,特定任务便启动执行。...args[]){ new UserHeartBeat().Show(); } } 这个类的作用就是用来定义每隔多久要做的事情 3,配置文件(applicationContext.xml) 用来配置定时任务...4.在主配置文件web.xml中注册定时任务的配置文件(applicationContext.xml) spring/WEB-INF/classes/ApplicationContext.xml 5.定义一个测试类来调用定时任务...lazy-init设置为false 则不用实例化 System.out.println(“Spring Quartz test end…”); } 运行效果图如下: 案例下载地址 实用的spring+quartz实现定时任务

    53010

    SpringQuartz 实现定时任务调度

    最近公司新项目需要用到定时器,于是研究了一下发现: Spring中使用Quartz有两种方式实现: 第一种是任务类继承QuartzJobBean 第二种则是在配置文件里定义任务类和要执行的方法,类和方法仍然是普通类...-- Spring-Quartz实现定时任务调度 --> org.quartz-scheduler</groupId...JobExecutionContext context) 14 throws JobExecutionException { 15 System.out.println("继承QuartzJobBean定时任务执行中...* 要调度的具体任务 (方法名任意) 7 */ 8 protected void executeTask(){ 9 System.out.println("普通类定时任务执行中...-- 方式二:使用MethodInvokingJobDetailFactoryBean,任务类可以不实现Job接口,通过targetMethod指定调用方法 --> 17 <bean id="SpringQtzJobMethod

    1.9K20

    Go定时任务实现

    定时任务调度是常见的场景,从简单点本地任务调度,到分布式定时任务调度,被广泛的使用。...本文汇总了 awesome-go 里全部的本地定时任务库,并横向对比其实现原理,以及使用场景和优缺点,欢迎收藏随时参考。...定时任务基础最基础的定时任务众所周知,go 语言的 time 库提供了 Ticker 方法,可以通过:ticker := time.NewTicker(duration) 的方式获取到一个定时返回的 chan...,此可以用来帮助我们实现基础的定时任务功能,比如如下函数就是基础的实现:package mainimport ("fmt""time")func NewCronJob(duration time.Duration...定时任务通用实现——基础如果将上述定时任务的实例代码进行封装,就可以实现一个简单由实用的定时任务。下文将分析并对比,awesome-go 推荐的定时任务库。

    1.2K50
    领券