quartz

在Docker中运行SpringBoot程序

两盒软妹~` 提交于 2020-02-27 05:10:55
1.将SpringBoot项目中pom.xml的build插件更换为: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 2.执行mvn clean package,在target目录下得到相关文件 3.将上述 **.jar 上传到服务器目录 4.创建Dockerfile文件 FROM java:8 VOLUME /tmp ADD quartzboot-1.0-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 5.进行docker镜像编译(注意最后还有一个点): docker build -t skywp/quartzboot . 6.运行测试: docker run -p 8188:8188 --name quartz-boot skywp/quartzboot 欢迎关注我的公号:彪悍大蓝猫,持续分享SpringCloud

Springboot集成Quartz

你。 提交于 2020-02-27 05:08:19
之前学习过spring的定时任务 : https://www.cnblogs.com/slimshady/p/10112515.html 本文主要学习记录下springboot使用quartz 1. pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.7.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId>

cronExpression表达式解释,时间

徘徊边缘 提交于 2020-02-27 04:09:40
CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 通配符说明: * :表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。 ? :表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为"?" 具体设置为 0 0 0 10 * ? - :表示区间。例如 在小时上设置 "10-12",表示 10,11,12点都会触发。 , :表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发 / :用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)。 在月字段上设置'1/3'所示每月1号开始,每隔三天触发一次。 L :表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于"7"或"SAT"。如果在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本月最后一个星期五" W :表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发,

quartz定时任务不执行

可紊 提交于 2020-02-26 15:17:33
quartz定时任务执行一段时间不执行的原因 数据库表QRTZ_TRIGGERS 里的 TRIGGER_STATE 字段的值自动修改为 ERROR 了 ,quartz定时任务是不扫描这种 ERROR 情况. 之所以出现 ERROR 原因在于job里有bug,导致quartz自动将状态改变,然后quartz不执行 ERROR 状态的job. 1.查找原因 原因如下图:( 查找原因的方法是 将 ERROR 改为正常状态时,会打印错误 ) TRIGGER_STATE的状态有: WAITING:等待 PAUSED:暂停 ACQUIRED:正常执行 BLOCKED:阻塞 ERROR:错误 2.数据库的现象 如下图: 其中TRIGGER_STATE 状态的字段为 ERROR ,可以将其改为上面的 WAITING:等待 或者 ACQUIRED:正常执行 然后重启项目,这时在控制台可能会有一图所示类似的错误日志. 3. TRIGGER_STATE 字段改变后不会自动改正,并且quartz定时任务不扫描 ERROR 状态 因此,quartz定时任务可能执行几次后遇到job里的bug就自动修改了状态,那么这个quartz定时任务就不再执行了. 4.解决方案 解决quartz定时任务job里的bug,然后将数据库 QRTZ_TRIGGERS 里的 TRIGGER_STATE 字段的状态修改为正常的状态.

quartz笔记

人走茶凉 提交于 2020-02-26 11:53:07
quartz 1.体系结构(三大元素) Job/JobDetail任务 Trigger触发器 SimpleTrigger/CornTrigger scheduler调度器 start stop pause resume 一个Trigger只能由1个job,但一个job可以有多个触发器。 2.主要组件 Scheduler 调度程序-任务执行计划表 创建方式:默认使用StdSchedulerFactory创建 Job 任务类 实现job接口的execute方法 默认每次调用job都会创建新的JobDataMap,即无状态的job。可以添加 @PersistJobDataAfterException注解,实现JobDataMap的持久化,保存上一次的执行结果。 JobDetail 任务的实例,通过JobBuilder创建,可以通过getJobDataMap获取特定实例的状态信息。 JobDataMap job实例执行时,可以使用其中的数据 Trigger触发器 定义触发条件 如cron表达式,间隔时间等。常用的包括SimpleTrigger/CornTrigger. startDate任务第一次开始时间,endDate任务结束时间 JobBuilder 用于创建任务实例 TriggerBuilder 用于创建触发器实例 JobListener、TriggerListener

Java定时任务调度详解

孤者浪人 提交于 2020-02-26 05:47:37
前言 在实际项目开发中,除了Web应用、SOA服务外,还有一类不可缺少的,那就是定时任务调度。定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券;比如在保证最终一致性的场景中,往往利用定时任务调度进行一些比对工作;比如一些定时需要生成的报表、邮件;比如一些需要定时清理数据的任务等。本篇博客将系统的介绍定时任务调度,会涵盖Timer、ScheduledExecutorService、开源工具包Quartz,以及Spring和Quartz的结合等内容。 JDK原生定时工具:Timer 定时任务调度:基于给定的时间点、给定的时间间隔、给定的执行次数自动执行的任务。 Timer位于java.util包下,其内部包含且仅包含一个后台线程(TimeThread)对多个业务任务(TimeTask)进行定时定频率的调度。 schedule的四种用法和scheduleAtFixedRate的两种用法 参数说明: task:所要执行的任务,需要extends TimeTask override run() time/firstTime:首次执行任务的时间 period:周期性执行Task的时间间隔,单位是毫秒 delay:执行task任务前的延时时间,单位是毫秒 很显然,通过上述的描述,我们可以实现: 延迟多久后执行一次任务;指定时间执行一次任务

定时任务框架 Quartz 学习笔记(一)

对着背影说爱祢 提交于 2020-02-25 19:09:46
本篇内容: Quartz 简介 Quartz快速开始指南 本篇只做简介及效果预览项目搭建,不做代码分析。 Quartz 简介     Quartz 是一个功能丰富且开源的作业调度库,从最小的独立应用程序到最大的电子商务系统,它几乎可以集成到任何 Java 应用中。     Quartz 既可以创建简单的作业,也可以创建数以万计的复杂作业,它的作业定义符合标准 Java 组件规范,几乎可以执行所编写的所有内容。此外,它还包含许多企业级的功能,例如对 JTA 事务和集群的支持。 作业调度这个名词听着很高大上,通俗理解就是需要程序在固定时间做的某些事情,而 Quartz 这个框架就可以帮我们做这个事情,而且它可以很方便的和我们的应用进行集成使用。 Quartz 快速开始指南 1.下载与安装 官网下载地址: http://www.quartz-scheduler.org/downloads ,选择稳定版本(Stable Releases)下载 安装 将下载的稳定版本(例如:quartz-2.3.0-distribution.tar.gz)进行解压缩操作。获取解压文件夹 lib 下的 jar 包。 新建一个 Java 项目,在项目根目录下新建 lib 文件夹,将 Quartz 所需要的 jar 包全部复制过来。 配置 Quartz 所需要的 jar 为依赖项(不同IDE操作方式不一样

作业调度框架 Quartz.NET 2.0 StepByStep

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-25 18:37:55
注 :目前网上诸多介绍 Quartz.net 的文章,甚至 Quartz.net 官网上的 Tutorial 都是 1.0 版本的,而这个项目在 2.0 版本对项目进行了比较大规模的修改,使得原有的很多例子都不能运行,故写此文。由于本人是边学边用,加之技术写作水平皆有限,错误自然难免,望轻拍,我将不定时更新完善此贴,希望能为需要的朋友提供帮助。 1. 项目介绍 现今的系统,业务数据是越来越大,传统的同步处理方式有时候已经不能满足用户需求,定时后台服务这种异步数据处理形式则逐渐被大家接受。相信大家在平时的工作中也经常遇到数据同步,或是定时邮件,短信提醒等需求,Quartz.net(官网 http://quartznet.sourceforge.net/ )可以很好满足对多个windows服务的管理及监控,同时在保证开发简单的情况下不失灵活,是非常优秀的作业调度框架。 和其他绝大多数开源项目一样Quartz.net也包含了其他几个优秀的开源项目: 核心 ----Common.Logging(通用日志接口) ----C5(泛型集合类) 示例程序 ----log4net(日志记录-通用日志接口实现) ----topshelf(跨平台服务宿主程序) Quartz.net使用的许可是Apache License,商业友好,使用者可以修改源码用于开源或商业项目,只需包含许可及修改说明。 2.

quartz多任务调度+spring 实现

白昼怎懂夜的黑 提交于 2020-02-25 10:36:21
一.Quartz的学习简述   客官,不要急,请看完下面的内容...   代码可以直接拷贝使用,本文是编写2个定时方法来实现的,如果想要执行1个,删除另1个即可。但是想要知道执行原理请看最后的原理分析 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.2.RELEASE</version> </dependency> 二.执行任务类 1 package com.quartz; 2 3 import java.util.Date; 4 5 /** 6 *className : QuartzTest 7 *description : 定时任务test 8 *@date : 2017年12月5日 9 */ 10 public class QuartzTest { 11 //要执行的方法1 12 public void run1(){ 13 System.out

强制卸载阿里云盾(安骑士)

本秂侑毒 提交于 2020-02-22 22:56:10
wget http://update.aegis.aliyun.com/download/uninstall.sh chmod +x uninstall.sh ./uninstall.sh wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh chmod +x quartz_uninstall.sh ./quartz_uninstall.sh 删除残留 pkill aliyun-service rm -fr /etc/init.d/agentwatch /usr/sbin/aliyun-service rm -rf /usr/local/aegis* https://www.22vd.com/37223.html 来源: CSDN 作者: Hali_Botebie 链接: https://blog.csdn.net/djfjkj52/article/details/104450134