广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java中简单实用Quartz概述
  • 815
分享到

Java中简单实用Quartz概述

java  quartzjava  quartz使用 2023-02-15 12:02:24 815人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.Quartz是什么?2. Quartz谁维护?3. 简单的应用3.1 需求描述3.1.1. spring中自带的3.1.2. Quartz的简单使用4. Quartz相较Sp

1.Quartz是什么?

Quartz是一个开源的Java调度框架,可以用来实现在指定的时间或时间间隔触发任务执行的功能。它支持多种方式的作业调度,如基于日期、时间间隔和Cron表达式的调度。Quartz允许开发人员定义并执行大量的作业,并且在大规模部署时可以实现高可靠性、高可用性和可伸缩性。

Quartz框架包括一个调度器、触发器和作业,其中:

  • 调度器是Quartz框架的核心组件,它负责管理和协调所有触发器和作业的调度。
  • 触发器是定义作业调度计划的组件,它定义了作业应该在何时执行以及如何执行。
  • 作业是要执行的任务或业务逻辑。

Quartz框架可以与Spring框架集成,从而实现更加灵活和高效的作业调度。使用Quartz框架可以方便地实现定时任务、日志处理、数据备份等功能,是Java应用程序中常用的调度框架之一。

2. Quartz谁维护?

Quartz最初是由Terracotta公司开发的,现在Quartz的开发由Quartz项目社区维护和管理。Quartz社区包括Quartz开发团队和其他贡献者,他们共同负责开发、维护和推广Quartz框架,以确保其高质量和持续发展。Quartz项目社区是开放的,任何人都可以参与其中并为框架做出贡献。Quartz社区通过社区网站、邮件列表、GitHub存储库、Stack Overflow和其他社交媒体平台来支持和促进社区交流和参与。

3. 简单的应用

3.1 需求描述

定时执行一段代码

3.1.1. Spring中自带的

@Component
@EnableScheduling
public class ScheduledTask {
    @Scheduled(fixedDelay = 1000)
    public void task(){
        // 添加要执行的任务代码
        System.out.println("woshixiaocai");
    }
}

3.1.2. Quartz的简单使用

public class MyJob implements Job {
    public void execute(JobExecutionContext context) throws JobExecutionException {
        // 添加要执行的任务代码
        System.out.println("woshixiaocai");
    }
}

@Component
public class MyScheduler {
    @Value("${jcrbcorn}")
    private String jcrbcorn;

    @Autowired
    private Scheduler scheduler;

    @PostConstruct
    public void startScheduler() throws SchedulerException {
        Trigger trigger = TriggerBuilder.newTrigger()
            .withIdentity("myTrigger", "group1")
            .withSchedule(CronScheduleBuilder.cronSchedule(jcrbcorn))
            .build();

        JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
            .withIdentity("myJob", "group1")
            .build();

        scheduler.scheduleJob(jobDetail, trigger);
        scheduler.start();
    }

    public void stopScheduler() throws SchedulerException {
        scheduler.shutdown(true);
    }

    public void updateScheduler(String cronExpression) throws SchedulerException {
        Trigger oldTrigger = scheduler.getTrigger(new TriggerKey("myTrigger", "group1"));

        Trigger newTrigger = TriggerBuilder.newTrigger()
            .withIdentity("myTrigger", "group1")
            .withSchedule(CronScheduleBuilder.cronSchedule("0 0/10 * * * ?"))
            .build();

        scheduler.rescheduleJob(oldTrigger.geTKEy(), newTrigger);
    }
}

4. Quartz相较Spring的@Scheduled有什么优势

Quartz和Spring的@Scheduled都是用于任务调度的框架,它们的使用都非常方便和灵活,可以实现各种复杂的任务调度需求。两者的具体优劣可以根据具体需求和场景而定,以下是Quartz相较Spring的@Scheduled的几个优势:

  • 更灵活的调度表达式:Quartz支持Cron表达式,比Spring的@Scheduled支持的固定的时间间隔更加灵活。Cron表达式可以定义更复杂的调度规则,如指定特定的周几、月几、或每隔几天等,可以满足更加精细化的调度需求。
  • 更高的可靠性和健壮性:Quartz可以实现任务的持久化存储和集群化部署,以实现更高的可靠性和健壮性。Quartz任务在运行时可以通过机制保证只有一个实例在执行,从而避免了可能的并发问题。而Spring的@Scheduled只能实现单点部署,不能很好地应对高并发和故障恢复等场景。
  • 更丰富的可操作性:Quartz提供了更多的操作api,如暂停、恢复、修改、删除等,能够更好地满足实际业务需求。
  • 更广泛的应用场景:Quartz不仅可以应用于普通的任务调度,还可以应用于分布式系统、企业级应用、大数据处理等更为复杂的场景,具有更广泛的应用前景。

到此这篇关于Java中简单实用Quartz概述的文章就介绍到这了,更多相关java  quartz内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java中简单实用Quartz概述

本文链接: https://www.lsjlt.com/news/196189.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中简单实用Quartz概述
    目录1.Quartz是什么2. Quartz谁维护?3. 简单的应用3.1 需求描述3.1.1. Spring中自带的3.1.2. Quartz的简单使用4. Quartz相较Spr...
    99+
    2023-02-15
    java  quartz java  quartz使用
  • 详解Java中Quartz的简单使用
    目录简单示例usingJobData非并发执行Scheduler 每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以规避并发访问的问题(jobDetail的实例也...
    99+
    2023-05-15
    Java Quartz使用 Java Quartz
  • 简单阐述一下Java集合的概要
    概念 Java中的集合就是一种容器,可以容纳不同种类的数据,这些容纳是建立在未知的基础上。 优点 1.可以动态保存任意多个对象,使用比较方便。 2.提供一系列方便的操作对象的方法:a...
    99+
    2022-11-12
  • 正则表达式的概述和简单使用是怎样的
    本篇文章为大家展示了的概述和简单使用是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。正则表达式的概述和简单使用* A:正则表达式        * 是指...
    99+
    2023-06-02
  • 【SpringBoot+Vue】全网最简单但实用的前后端分离项目实战笔记 - 项目概述
    配套视频地址:https://www.bilibili.com/video/BV1dG4y1T7yp/ 项目概述 1. 目标 通过学习本项目,深刻理解前后端分离的思想,具备独立搭建前后端分离项目的能力及功能扩展能力 2. 开发模式 3. ...
    99+
    2023-08-16
    spring boot vue.js 后端 java elementui
  • 简述Java中的四种引用类型
    目录简介 强引用 软引用 弱引用 虚引用 简介 从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用...
    99+
    2022-11-12
  • 详细讲解JAVA中方法重载概念——简单易懂
    1、什么方法重载?方法的重载指的是方法名一样,但是参数类型不一样1.1、attack方法重载有一种英雄,叫做物理攻击英雄 ADHero,为ADHero 提供三种方法。public void attack() public void atta...
    99+
    2021-12-10
    java教程 重载
  • java实现简单中国象棋
    本文实例为大家分享了java实现简单中国象棋的具体代码,供大家参考,具体内容如下 可以实现简单的人机对战功能,棋子移动会插入关键帧,可以悔棋等功能 运行效果 代码 import j...
    99+
    2022-11-13
  • java中Scanner的简单用法
    一.用法 先导入Java.util.Scanner包 import java.util.Scanner; 创建Scanner类的对象 Scanner sc=new Scanner(System.in);//创建对象sc// 创建一个变量来...
    99+
    2023-09-22
    eclipse java
  • java中Callback简单使用总结
    1、什么是Callback,什么时候需要使用Callbackcallback是回调的意思,一般我们需要2个类需要相互掉用,一个类把数据动态传递给另外一个类的时候,可以用这种方式,比如Android里面的Launcher类和LauncherM...
    99+
    2023-05-31
    java callback ava
  • 用Java实现简单ATM机功能
    本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下 项目介绍 基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现。 项目功能 1...
    99+
    2022-11-13
  • 用Java实现简单画板功能
    现在,我们来讲一下怎么用Java来实现简单画板,要实现的功能有:选择图形(方形、圆形、多边形...)、可以选择颜色。 首先,打开windows下的画图软件,我们知道我们需要一个窗体(...
    99+
    2022-11-13
  • Java中Quartz高可用定时任务怎么实现
    本篇内容介绍了“Java中Quartz高可用定时任务怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定时任务使用指南如果你想做定时任务...
    99+
    2023-06-29
  • java如何实现简单中国象棋
    这篇文章主要讲解了“java如何实现简单中国象棋”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java如何实现简单中国象棋”吧!运行效果代码import java.awt.Canv...
    99+
    2023-06-30
  • 用Java实现简单计算器功能
    本项目为大家分享了Java实现简单计算器功能的具体代码,供大家参考,具体内容如下 一 项目说明 实训目的:掌握 Java GUI 开发中的布局管理和事件处理机制。 实训要求: (1...
    99+
    2022-11-12
  • java 开发中 dom4j的简单用法
    在Java开发中,dom4j是一个常用的处理XML文件的开源库。下面是dom4j的一些简单用法:1. 导入dom4j库:首先,需要将...
    99+
    2023-09-21
    java
  • java 中反射简单使用示例
    这篇文章将为大家详细讲解有关java 中反射简单使用示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package reflect_test;public class Do...
    99+
    2023-06-02
  • 简述IDEA集成Git在实际项目中的运用
    1.企业实际项目中Git的使用 在实际的企业项目开发中,我们一般Java的项目在公司都有自己的局域网代码仓库,仓库上存放着很多的项目。以我工作过的公司如华为的项目,一般是存放在企业内...
    99+
    2022-11-12
  • java 使用HttpURLConnection发送数据简单实例
    java 使用HttpURLConnection发送数据简单实例每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection ...
    99+
    2023-05-31
    httpurlconnection 数据 ava
  • 怎么用JAVA实现简单Thread缓冲池
    本篇内容主要讲解“怎么用JAVA实现简单Thread缓冲池”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JAVA实现简单Thread缓冲池”吧!在应用中,我们常常需要Thread缓冲池来做...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作