java定时器quartz,quartz实现定时任务

  java定时器quartz,quartz实现定时任务

  00-1010定时任务用户指南1、依赖性介绍2、快速入门3、手动触发定时任务4、带参数的任务5、并发任务6、持久性

  00-1010如果你想做定时任务,有高可用性要求,或者只是想快速轻松上手,那么选择它是对的。

  计时模块是Quartz框架的进一步封装,使用起来更加简单。

  

目录

依赖关系groupIdxin.altitude.cms/groupId artifactIducode-CMS-quartz/artifactId版本1 . 5 . 4 . 1/版本/依赖关系

 

  00-1010实现org.quartz.Job接口;使用注释CronExp添加任务的调度策略;使用注释组件将任务注入到容器中。

  项目启动时,预定任务处于监控和运行状态。

  @ Component @ DisallowConcurrentExecution @ cronex(cron= 0/5 * * * *?)公共类演示作业实现job { @ override public void execute(jobexecutioncontext){ system . out . println( task 1: local datetime . now());}}

  00-1010定时任务不仅以现有频率周期性运行,还具有通过界面手动触发的能力。

  调用以下接口手动触发任务ID号为jobId的任务。

  http://localhost :8080/CMS-API/quartz/job/{ jobId }

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

  @CronExp(id=1,cron=0/5 * * * *?)可以通过注释CronExp的id属性来指定任务ID。不指定的话会用一个随机ID,不满足已知条件,所以不能手动触发。

  00-1010虽然大部分任务不需要注入参数,但还是有少数场景需要向调度任务注入参数。

  void Execute(JobExecutionContext){/*如果调用任务时传入参数,可以得到*/mapstring,objectdata map=context . getmergedjobdatamap();/*比如从Map中获取一个键值对,一般来说参数是基本数据类型*/Object key=data Map . get( key );system . out . println( task 2: local datetime . now() : key);}编写定时任务时,可以从JobExecutionContext对象中解析一个Map,从而完成参数的注入。

  http://localhost :8080/CMS-API/quartz/job/1?Key=a上面的http调用是指手动触发任务ID为[1]的任务,并给它传递一个参数,参数为[key],值为[a]。

  00-1010此框架不支持任务并发。换句话说,并发对于调度任务是不利的,所以需要手动禁止。

  需要注意的是,Quartz的并发是指在任务执行时间超过任务调度周期,且前一个任务未完成的情况下,是否执行新任务。

  一般来说,需要表明禁止并发,在task类上添加DisallowConcurrentExecution注释可以禁止任务并发。

  00-1010如果计划任务有高可用性要求,则需要持久化。在计划任务数据被持久化到数据库中之后,它支持多个应用。定时任务持久化多节点部署后,集群中单个节点的故障不会影响定时任务的执行。

  定时任务持久化,只需要修改yml文件配置就可以达到目的,不需要修改代码。一般来说,Mysql是作为一个持久容器来使用的。

  spring : Quartz : properties : org . Quartz . job store . isclustered : true org . Quartz . job store . class : org . Quartz . impl . jdbcjobstore . jdbcjobstore . driverdelegateclass : org . Quartz . impl . jdbcjobstore . stdjdbcdelegate org . Quartz . jobstore . data source : qzDS org . Quartz . datasou rce . qzDSquartz . data source . qzds . user 3360 root org . quartz . data source . qzds . password 3360 123456除了修改主机、端口、数据库名、用户名和密码五个参数外,其余参数可以使用默认值。

  配置数据库连接后,使用SQL脚本初始化数据库。

  这就是本文关于Java中Quartz高可用性定时任务的快速介绍。关于Java Quartz定时任务的更多信息,请搜索热门IT以前的文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • vue中的定时器清不掉,vue设置定时器调用方法,vue如何设置定时器和清理定时器
  • js定时方法,js的定时器函数
  • js定时方法,js的定时器函数,js定时器的使用(实例讲解)
  • js定时器重复执行怎么停止,js每隔几秒执行一次
  • js定时器重复执行怎么停止,js每隔几秒执行一次,js定时器(执行一次、重复执行)
  • js定时器重复执行怎么停止,,js定时器(执行一次、重复执行)
  • js中2种定时器的使用及清除的实现过程,js中两种定时器的设置及清除
  • js中2种定时器的使用及清除的实现过程,js中两种定时器的设置及清除,JS中2种定时器的使用及清除的实现
  • ,,Qt定时器和随机数详解
  • ,,Qt基础开发之Qt多线程类QThread与Qt定时器类QTimer的详细方法与实例
  • ,,IOS 中NSTimer定时器的使用
  • C语言定时器,c语言定时器程序编写
  • C语言定时器,c语言定时器程序编写,C语言实现简单的定时器
  • java 定时器的多种实现方式有哪些,java定时器的实现方式有几种
  • java 定时器的多种实现方式有哪些,java定时器的实现方式有几种,Java 定时器的多种实现方式
  • 留言与评论(共有 条评论)
       
    验证码: