quartz

Java 定时任务quartz job

与世无争的帅哥 提交于 2019-11-27 02:52:09
第二步:创建要被定执行的任务类   这一步也很简单,只需要创建一个实现了org.quartz.Job接口的类,并实现这个接口的唯一一个方法execute(JobExecutionContext arg0) throws JobExecutionException即可。如: package com.fync.quartz; import java.text.SimpleDateFormat; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; /** * 创建要被定执行的任务类 * @author long * */ public class MyJob implements Job{ public void execute(JobExecutionContext context) throws JobExecutionException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println(sdf.format(new Date())); } } 第三步

quartz定时任务-job

懵懂的女人 提交于 2019-11-27 02:51:06
1,首先添加对quartz组建的引用 quartz-2.2.3.jar,slf4j-api-1.7.7.jar https://files.cnblogs.com/files/renjing/quartz.zip 2,新增类实现job接口 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class TestJob implements Job { private static final Logger logger = LogManager.getLogger(TestJob.class); @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { logger.debug("TestJob执行啦!"); } } 3.新增一个Servlet,并且设置为在网站启动的时候自动初始化 import java.util.TimeZone;

SpringBoot基础教程3-1-1 简单定时任务方法介绍

江枫思渺然 提交于 2019-11-27 02:31:20
1 概述 定时任务,特定的时间执行任务,在项目中普遍使用。本文介绍简单的无状态无持久化的定时任务实现方式; Timer , ScheduledExecutorService , Spring Task 。 2 Timer 实现方式 JDK 自带的 java.util.Timer ;通过调度 java.util.TimerTask 的方式 让程序按照某一个频度执行,但不能在指定时间运行。 一般用的较少。 /** * 基于 Timer 实现的定时调度,基本就是手撸代码,目前应用较少,不是很推荐 * * @author Mkeeper * @create 2018/9/28 11:12 */ public class TimerDemo { public static void main(String[] args) { TimerTask timerTask = new TimerTask() { @Override public void run() { System.out.println("执行任务: " + LocalDateTime.now()); } }; Timer timer = new Timer(); // timerTask:需要执行的任务 // delay:延迟时间(以毫秒为单位) // period:间隔时间(以毫秒为单位) timer.schedule

Quartz与Spring的整合使用——创建JobDetail的方式及Trigger

本秂侑毒 提交于 2019-11-27 02:29:58
之前说到过Quartz的基本使用( 猛戳这里看文章 ),在实际使用中,我们通常会将定时任务交由spring容器来管理,所以今天我们来说说Quartz与spring的整合。 咱们还是按照Quartz的三大元素的顺序来聊聊整合使用。 作业任务 在spring中对于Quartz的作业任务管理主要提供了两种方式,JobDetailFactoryBean和MethodInvokingJobDetailFactoryBean,它们都在org.springframework.scheduling.quartz这个包下。下面我们来看看它们的使用。 JobDetailFactoryBean spring对这个类的解释为:A Spring FactoryBean for creating a Quartz JobDetail instance, supporting bean-style usage for JobDetail configuration. 一个用于创建Quartz JobDetail实例的,支持以bean定义风格来配置JobDetail的工厂bean。 对于在spring中的使用也是很简单,首先我们需要创建一个具体的作业任务的实现类。使用JobDetailFactoryBean来管理作业任务时,我们的作业任务实现类需要继承QuartzJobBean类

SpringBoot基础教程3-1-3 Quartz定时任务单点持久化

有些话、适合烂在心里 提交于 2019-11-27 02:29:45
1 概述 实际项目中,复杂的定时任务都会结合持久化,动态改变定时任务状态,本文将介绍基于 Quartz 的定时任务单点持久化方式,通过 RESTful 风格,演示定时任务的 CRUD ,最后使用 Swagger 测试。 2 数据库表说明 //Quartz表 qrtz_calendars:以 Blob 类型存储 Quartz 的 Calendar 信息 qrtz_cron_triggers:存储 Cron Trigger,包括 Cron 表达式和时区信息 qrtz_fired_triggers:存储与已触发的 Trigger 相关的状态信息,以及相联 Job 的执行信息 qrtz_paused_trigger_grps:存储已暂停的 Trigger 组的信息 qrtz_scheduler_state:存储少量的有关调度器 (Scheduler) 的状态,和别的 调度器 (Scheduler)实例(假如是用于一个集群中) qrtz_locks:储程序的非观锁的信息(假如使用了悲观锁) qrtz_job_details:存储每一个已配置的 Job 的详细信息(jobDetail) qrtz_job_listeners:存储有关已配置的 Job 监听器 的信息 qrtz_simple_triggers:存储简单的 Trigger,包括重复次数,间隔,以及已触的次数 qrtz_blog

分布式定时任务框架---Uncode Schedule

孤人 提交于 2019-11-27 02:29:32
分布式定时任务框架---Uncode Schedule rabbitGYK 关注 2016.11.27 20:36* 字数 1446 阅读 7141评论 5喜欢 36赞赏 1 博客原文 作为一个支付公司的项目组,经常会有很多对账功能(签约对账、支付订单对账、记账对账),这些都是以定时任务的形式实现,组内经常需要维护一些定时任务,在使用过程中主要关注定时任务的稳定性、健壮性和可控性, 分布式定时任务+任务监控 基本满足使用需求。 定时任务的现状 就定时任务来说,首先是操作系统层面一直支持的功能,所以我们的各种对定时任务的实现手段才能得以发挥。由于操作系统和编程语言种类繁多,本文中将重点从linux操作系统、java语言以及java生态中开源框架来介绍定时任务。 1. linux系统级的定时任务执行器:crontab 这是一个系统级的定时器,具有灵活简单的特性,同时也是缺乏管理功能和分布式支持。一般的使用方法是,使用shell脚本调用业务实现jar包。 2. java语言中的定时器:java.util.Timer 这是一个java语言内置的定时器,这是所有基于java语言的开源框架实现的基础。其中,典型的任务调度方法: public void schedule(TimerTask task, long delay); public void schedule(TimerTask

崛起于Springboot2.X + Quartz定时调度(29)

时光总嘲笑我的痴心妄想 提交于 2019-11-27 02:29:17
《SpringBoot2.X心法总纲》 下面是两种方法定时任务,一个是集成quartz,另外一个是spring自带的定时任务,后者更简单一些。 该博客为入门级博客,如果想要查看企业使用Quartz场景,点击 --> 手动操作定时任务 1、pom依赖 springboot2.0之后,spring-boot-starter中已经包含了quart的依赖,所以只需要添加一个依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> 2、定时任务执行的方法类 public class MjtTask extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("开始定时计时"); } } 3、配置quartz类 @Configuration public class QuartzConfig { @Bean public JobDetail

SpringBoot集成Quartz

社会主义新天地 提交于 2019-11-27 02:29:04
SpringBoot集成Quartz 什么是Quartz Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components that may execute virtually anything you may program them to do. 来源: http://www.quartz-scheduler.org/ Quartz 的优点 丰富的 Job 操作 API; 支持多种配置 Spring Boot 无缝集成; 支持持久化; 支持集群 开源 Quartz的核心概念 1.Job

Quartz的cron表达式 (spring定时器 crontab)

十年热恋 提交于 2019-11-27 01:41:07
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。 按顺序依次为: 秒 (0~59) 分钟 (0~59) 小时 (0~23) 天(月) (0~31,但是你需要考虑你月的天数) 月 (0~11) 天(星期 (1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 年份 (1970-2099) 格式如下: 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC , - * / 星期 1-7 或者 SUN-SAT , - * ? / L C # 年(可选) 留空, 1970-2099 , - * / 其中每个元素可以是: 一个值(如6), 一个连续区间(9-12), 一个间隔时间(8-18/4)(/表示每隔4小时), 一个列表(1,3,5),通配符。 由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 0 0 12 ? * WED 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *"

Quartz

余生长醉 提交于 2019-11-26 22:49:59
Quartz 是什么? Quartz 是一款 Java 平台上开源的任务调度器。 快速开始 (1)引入依赖 compile "org.quartz-scheduler:quartz:2.3.0" compile "org.quartz-scheduler:quartz-jobs:2.3.0" (2)初始化 // 从工厂中获取 Scheduler 对象 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // 启动 scheduler.start(); (3)新建一个 Job public class TestJob implements Job{ @Override public void execute(JobExecutionContext context) throws JobExecutionException { System.err.println("Hello World! TestJob is executing."); } } (4)调度一个 Job // 添加 Job 的携带数据 JobDetail job = newJob(TestJob.class).withIdentity("job1", "group1").build(); // 新建一个触发器 Trigger trigger