iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中Quartz高可用定时任务怎么实现
  • 663
分享到

Java中Quartz高可用定时任务怎么实现

2023-06-29 20:06:30 663人浏览 薄情痞子
摘要

本篇内容介绍了“Java中Quartz高可用定时任务怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定时任务使用指南如果你想做定时任务

本篇内容介绍了“Java中Quartz高可用定时任务怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

定时任务使用指南

如果你想做定时任务,有高可用方面的需求,或者仅仅想入门,上手简单,那么选用它准没错。

定时任务模块是对Quartz框架进一步封装,使用更加简洁。

1、引入依赖

<dependency>    <groupId>xin.altitude.cms</groupId>    <artifactId>ucode-cms-quartz</artifactId>    <version>1.5.4.1</version></dependency>

2、快速上手

实现org.quartz.Job接口;使用注解CronExp添加任务的调度策略;使用注解Component将任务注入容器中。

启动项目,定时任务便处于监听与运行中。

@Component@DisallowConcurrentExecution@CronExp(cron = "0/5 * * * * ?")public class DemoJob implements Job {    @Override    public void execute(JobExecutionContext context) {        System.out.println("任务1:" + LocalDateTime.now());    }}

3、手动触发定时任务

定时任务除了以既有频率周期性运行外,还有通过接口手动被触发的能力。

调用如下接口,可手动触发任务ID编号为jobId的任务。

Http://localhost:8080/cms-api/quartz/job/{jobId}

如果有手动触发定时任务的需求,则需要任务ID唯一并已知,因此需要在编写定时任务时手动指定。

@CronExp(id = 1, cron = "0/5 * * * * ?")

通过注解CronExp的id属性可指定任务ID,不显示指定则使用随机ID,不满足已知的条件,因此无法手动触发。

4、带参数任务

尽管大多数任务不需要注入参数,但仍有少量的场景需要向定时任务注入参数。

public void execute(JobExecutionContext context) {        Map<String, Object> dataMap = context.getMergedJobDataMap();        Object key = dataMap.get("key");    System.out.println("任务2:" + LocalDateTime.now() + ": " + key);}

在编写定时任务时,可从JobExecutionContext对象中解析一个Map,从而完成参数的注入。

http://localhost:8080/cms-api/quartz/job/1?key=a

上述http调用的含义是手动触发任务ID为【1】的任务,并且向其传递参数为【key】值为【a】的参数。

5、任务并发

本框架不支持任务并发,换句话说并发对定时任务不利,因此需要手动禁止。

需要注意的是Quartz的并发是指当任务执行耗时超过任务调度周期时,上一个任务未执行完,新任务是否执行。

一般来说需要显示禁止并发,在任务类上添加注解DisallowConcurrentExecution即可禁止任务并发。

6、持久化

如果定时任务有高可用的需求,那么需要对任务进行持久化。定时任务数据持久化到数据库中后,支持应用程序多开。定时任务持久化多节点部署后,集群中单节点故障不影响定时任务的执行。

定时任务持久化,仅需修改yml文件配置即可达到目标,无需修改代码。一般而言使用Mysql做持久化的容器。

spring:  quartz:    properties:      org.quartz.jobStore.isClustered: true      org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX      org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate      org.quartz.jobStore.dataSource: qzDS      org.quartz.dataSource.qzDS.driver: com.Mysql.cj.jdbc.Driver      org.quartz.dataSource.qzDS.URL: jdbc:mysql://localhost:3306/quartz-demo      org.quartz.dataSource.qzDS.user: root      org.quartz.dataSource.qzDS.passWord: 123456

除了修改主机、端口、数据库名、用户名、密码五个参数外,其余参数使用默认值即可。

配置完数据库连接后,使用sql脚本,注意初始化数据库

“Java中Quartz高可用定时任务怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java中Quartz高可用定时任务怎么实现

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

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

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

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

下载Word文档
猜你喜欢
  • Java中Quartz高可用定时任务怎么实现
    本篇内容介绍了“Java中Quartz高可用定时任务怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定时任务使用指南如果你想做定时任务...
    99+
    2023-06-29
  • Java中Quartz高可用定时任务快速入门
    目录定时任务使用指南1、引入依赖2、快速上手3、手动触发定时任务4、带参数任务5、任务并发6、持久化定时任务使用指南 如果你想做定时任务,有高可用方面的需求,或者仅仅想入门快,上手简...
    99+
    2024-04-02
  • 怎么使用.NET6+Quartz实现定时任务
    这篇文章主要介绍“怎么使用.NET6+Quartz实现定时任务”,在日常操作中,相信很多人在怎么使用.NET6+Quartz实现定时任务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用.NET6+Qua...
    99+
    2023-07-05
  • Java使用quartz实现定时任务示例详解
    目录正文配置文件pom定时任务和触发器定时任务的业务代码正文 最近新到了一个项目,用到定时任务的地方是真滴多。 就稍微研究了一下,来做个demo。 其实定时任务使用很广泛也很方便,之...
    99+
    2022-11-13
    Java quartz定时任务 Java quartz
  • SpringBoot+Quartz实现动态定时任务
    本文实例为大家分享了springBoot+Quartz实现动态定时任务的具体代码,供大家参考,具体内容如下 目前常用的几种任务调度 Timer,简单无门槛,一般也没人用。spring...
    99+
    2024-04-02
  • Quartz高可用定时任务的快速上手指南
    目录定时任务使用指南1、引入依赖2、快速上手3、手动触发定时任务4、带参数任务5、任务并发6、持久化总结 定时任务使用指南 如果你想做定时任务,有高可用方面的需求,或者仅仅...
    99+
    2024-04-02
  • SpringBoot实现quartz定时任务可视化管理功能
    前言 在实际框架或产品开发过程中,springboot中集成quarzt方式基本是以job和trigger的bean对象方式直接硬编码完成的,例如以下代码示例。对于系统内定义的所有定...
    99+
    2024-04-02
  • java任务调度quartz怎么实现
    使用Quartz实现Java任务调度的步骤如下:1. 导入Quartz库:在项目的依赖管理中,添加Quartz库的Maven或Gra...
    99+
    2023-09-18
    quartz java
  • Java中怎么实现SpringBoot定时任务
    今天就跟大家聊聊有关Java中怎么实现SpringBoot定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. SpringBoot--任务:定时任务项目开发中经常需要执行一些...
    99+
    2023-06-20
  • 怎么在java中实现定时任务
    这篇文章给大家介绍怎么在java中实现定时任务,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允...
    99+
    2023-06-15
  • SpringBoot集成quartz实现定时任务详解
    目录准备知识点什么是QuartzQuartz的体系结构什么是Quartz持久化实现案例 - 单实例方式实现案例 - 分布式方式后端实现前端实现测试效果准备知识点 需要了解常用的Qua...
    99+
    2022-11-13
    SpringBoot quartz定时任务 SpringBoot 定时任务 SpringBoot quartz
  • SpringBoot整合Quartz实现定时任务详解
    目录Quartz简介核心概念SchedulerJobDetailJobTriggerSpringBoot整合Quartz准备数据库表Maven相关依赖配置文件quartz配置类创建任...
    99+
    2022-11-13
    SpringBoot Quartz SpringBoot Quartz定时任务
  • 如何实现基于Quartz定时调度任务
    小编给大家分享一下如何实现基于Quartz定时调度任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介Quarzt是一个项目中定时执行任务的开源项目,Quart...
    99+
    2023-05-30
    quartz
  • Java 中怎么实现一个定时任务
    Java 中怎么实现一个定时任务,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现逻辑:新开一个线程,添加一个 for/ while 死循环,然后在死循环里面添加一个 sl...
    99+
    2023-06-15
  • Java Spring怎么实现定时任务
    本篇内容主要讲解“Java Spring怎么实现定时任务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring怎么实现定时任务”吧!java实现定时任务Jdk自...
    99+
    2023-07-02
  • 在springboot项目中使用quartz如何实现一个定时任务
    今天就跟大家聊聊有关在springboot项目中使用quartz如何实现一个定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。spring支持多种定时任务的实现。我们来介绍下使用...
    99+
    2023-05-31
    springboot art quartz
  • 如何在springboot中利用Quartz实现一个定时任务功能
    如何在springboot中利用Quartz实现一个定时任务功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、新建一个springboot工程,并添加依赖<depen...
    99+
    2023-05-31
    springboot art quartz
  • Java实现定时任务
    本文实例为大家分享了Java实现定时任务的具体代码,供大家参考,具体内容如下 1 使用java.util.Timer 这种方式的定时任务主要用到两个类,Timer 和 TimerTa...
    99+
    2024-04-02
  • quartz任务调度怎么实现
    在Java中,可以使用Quartz任务调度框架来实现任务调度。以下是实现Quartz任务调度的一般步骤:1. 添加依赖:在项目的构建...
    99+
    2023-08-31
    quartz
  • mysql中怎么实现定时任务
    今天就跟大家聊聊有关mysql中怎么实现定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 定时任务 查看event是否开启: show v...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作