Java基本的定时任务,一般有这几种方式:

一、Timer
 1 public class Timer{
2 static int index=0;
3 public static void main(String[] args){
4 Timer timer=new Timer();
5 timer.schedule(new TimerTask() {
6 @Override
7 public void run() {
8 index++;
9 System.out.println("你好");
10 if (index>100){
11 timer.cancel();
12 }
13 }
14 },0,1000);
15 }
16 }


通过往Timer提交一个TimerTask的任务,同时指定多久后开始执行以及执行周期,就可以周期执行任务。

二、Threa线程

 1 public class ThreadTest implements Runnable{
2 static int i=0;
3 @Override
4 public void run() {
5 Boolean t=true;
6 while (t){
7 i++;
8 try {
9 if (i<100) {
10 Thread.sleep(1000);
11 System.out.println("你好");
12 }else{
13 t=false;
14 }
15 } catch (InterruptedException e) {
16 e.printStackTrace();
17 }
18 }
19 }
20 public static void main(String[] args){
21 ThreadTest test=new ThreadTest();
22 Thread t=new Thread(test);
23 t.start();
24 }

通过创建一个线程,让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果。

三、Sping的@Scheduled注解定时

1    @Scheduled(fixedDelay = 5000)
2 public void note(){
3 System.out.println("你好");
4 }

注解中指定的属性名称是fixedRate,是指以固定频率(周期)执行任务,这个周期是以上一个任务开始时间为基准。

1     @Scheduled(cron="0 0 8 * * ?")
2 public void note(){
3 System.out.println("你好");
4 }

注解中指定的属性名称是cron,指定时调用,cron的参数依次指:

  • 秒(0~59)
  •   分钟(0~59)
  •   小时(0~23)
  •   天(月)(0~31,但是你需要考虑你月的天数)
  •   月(0~11)
  •   天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
  •   年份(1970-2099)

四、分布式定时框架LTS

 LTS 源码地址: https://github.com/ltsopensource/light-task-scheduler

实例源码:4种demo包括纯java、xml配置、注解配置、springboot

LTS 代码例子地址:https://github.com/ltsopensource/lts-examples/tree/master/lts-example-jobclient

 
												

java的常用定时任务的几种方式的更多相关文章

  1. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

  2. JAVA中集合输出的四种方式

    在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...

  3. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  4. java中数组复制的两种方式

    在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...

  5. java动态获取WebService的两种方式(复杂参数类型)

    java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...

  6. java 实现md5加密的三种方式与解密

      java 实现md5加密的三种方式 CreateTime--2018年5月31日15点04分 Author:Marydon 一.解密 说明:截止文章发布,Java没有实现解密,但是已有网站可以免费 ...

  7. Java 读取 .properties 文件的几种方式

    Java 读取 .properties 配置文件的几种方式   Java 开发中,需要将一些易变的配置参数放置再 XML 配置文件或者 properties 配置文件中.然而 XML 配置文件需要通过 ...

  8. 遍历HashMap常用的的三种方式

    遍历HashMap常用的的三种方式 HashMap是我们使用非常多的集合之一,下面就来介绍几种常用的HashMap的遍历方式. 1.首先定义一个新的HashMap,并往里面添加一些数据. HashMa ...

  9. Java执行groovy脚本的两种方式

    记录Java执行groovy脚本的两种方式,简单粗暴: 一种是通过脚本引擎ScriptEngine提供的eval(String)方法执行脚本内容:一种是执行groovy脚本: 二者都通过Invocab ...

随机推荐

  1. eclipse配置打开选中文件存储的目录快捷配置

    方便同时复制多个包的文件 https://jingyan.baidu.com/article/adc8151353a896f723bf73cd.html

  2. 通过Relect反射方法创建对象,获得对象的方法,输出对象信息

    package reflects; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java. ...

  3. 《JavaScript高级程序设计》——第二章在HTML使用JavaScript

    这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第 ...

  4. 09 Servlet中间服务 连接前段和后端

    import  导入    在当前类中使用外包中的类时使用 cookies 缓存 Alt + enter 提示快捷键 Servlet 服务  (连接前段和后端) Servlet本质就是Java类 Ja ...

  5. NB-IoT的同步信号解析

    NB-IoT的小区搜索和LTE的小区搜索是类似的,每个UE都是通过对同步信号的检测,来实现与小区时间和频率上的同步,以此来获取小区的ID.NB-IoT的同步信号包括NPSS和NSSS. NPSS用于完 ...

  6. Java学习的第三天

    1.今天学了main函数具体的解读如 main函数关键字的意义 变量命名 2.在2.1当中的cmd命令实施失败,文件路径没有找到. 3.明天学习变量范围和注释阅读大道至简.

  7. 初始化vue项目

    1.创建vue项目命令 vue init webpack deaxios # 使用脚手架创建项目 deaxios(项目名,随便取得) cd deaxios # 进入项目 npm install axi ...

  8. python制作电脑可执行exe文件

    python获取IP.主机名.mac地址 关注公众号"轻松学编程"了解更多. 制作get_IP.py文件: import socket import uuid # 获取主机名 ho ...

  9. Redis的介绍及使用

    redis 简介 简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向.另外,redis 也经常 ...

  10. IT人必知,互联网主流商业模式

    最近关注互联网电商营销相关方面的知识,对商业化和流量变现有了一些认知. 熟悉的朋友知道,写文章是我学习的一种方式,输出倒逼输入,继而强化知识体系,所以也把这段时间的输入,自顶向下做一个系列的分享. 对 ...