quartz

Quartz 并发/单线程

帅比萌擦擦* 提交于 2020-03-23 19:57:13
Quartz 并发/单线程 Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞。 1.在Spring中这时需要设置concurrent的值为false, 禁止并发执行。 <property name="concurrent" value="true" /> 2.当不使用spring的时候就需要在Job的实现类上加@DisallowConcurrentExecution的注释 @DisallowConcurrentExecution 禁止并发执行多个相同定义的JobDetail, 这个注解是加在Job类上的, 但意思并不是不能同时执行多个Job, 而是不能并发执行同一个Job Definition(由JobDetail定义), 但是可以同时执行多个不同的JobDetail, 举例说明,我们有一个Job类,叫做SayHelloJob, 并在这个Job上加了这个注解, 然后在这个Job上定义了很多个JobDetail, 如sayHelloToJoeJobDetail, sayHelloToMikeJobDetail, 那么当scheduler启动时, 不会并发执行多个sayHelloToJoeJobDetail或者sayHelloToMikeJobDetail,

redis 延时任务 2

…衆ロ難τιáo~ 提交于 2020-03-22 17:05:15
引言 在开发中,往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务。那么这里就会产生一个问题,这个延时任务和定时任务的区别究竟在哪里呢?一共有如下几点区别 定时任务有明确的触发时间,延时任务没有 定时任务有执行周期,而延时任务在某事件触发后一段时间内执行,没有执行周期 定时任务一般执行的是批处理操作是多个任务,而延时任务一般是单个任务 下面,我们以判断订单是否超时为例,进行方案分析 方案分析 (1)数据库轮询 思路 该方案通常是在小型项目中使用,即通过一个线程定时的去扫描数据库,通过订单时间来判断是否有超时的订单,然后进行update或delete等操作 实现 博主当年早期是用quartz来实现的(实习那会的事),简单介绍一下 maven项目引入一个依赖如下所示 < dependency > < groupId > org . quartz - scheduler </ groupId > < artifactId > quartz </ artifactId > < version > 2.2.2 </ version > </ dependency > 调用Demo类MyJob如下所示 package com . rjzheng . delay1 ; import

认识 Quartz 框架

Deadly 提交于 2020-03-22 16:05:37
今天我带大家认识一下Quartz 一、认识 Quartz 框架 Quartz 是 OpenSymphony 开源组织的一个 Java 开源项目, 在 2009 被 Terracotta 收购。Quartz 是一个任务 调度框架,比如你遇到这样的问题: 1、每月10自动还花呗 2、每隔一小时备份一下自己的学习笔记到云盘 3、每隔半小时,扫描订单信息等等 总结起来就是:在某一个有规律的时间点干某件事。并且事件的触发条件可以非常复杂(比如每月 最后一个工作日的 17:50),复杂到需要一个专门的框架来干这个事。 Quartz 就是来干这样的事,你给它一个 触发条件的定义,它负责到了时间点,触发相应的 Job(任务)起来干活 Quartz 是开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简 单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射 总结一下Quartz框架的特点: 1、强大的调度功能,例如支持多样的调度方式 2、灵活的应用方式,例如支持任务和调度的多种组合方式 3、分布式和集群功能,Terracotta 在收购后,对原来功能作了进一步提升 有关调度的三个主要的概念: 1、调度器 :Quartz 框架的核心是调度器。调度器负责管理 Quartz 应用 运行时环境。调度器不是靠自己做 所有的工作

java quartz

我只是一个虾纸丫 提交于 2020-03-22 14:14:46
什么是Quartz Quartz 是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。简单地创建一个org.quarz.Job接口的Java类,Job接口包含唯一的方法: public void execute(JobExecutionContext context) throws JobExecutionException; 在Job接口实现类里面,添加需要的逻辑到execute()方法中。配置好Job实现类并设定好调度时间表,Quartz就会自动在设定的时间调度作业执行execute()。 整合了Quartz的应用程序可以重用不同事件的作业,还可以为一个事件组合多个作业。Quartz通过属性文件来配置JDBC事务的数据源、全局作业、触发器侦听器、插件、线程池等等。 Quartz是由James House创建并最初于2001年春天被加入sourceforge工程。接下来的几年里,有很多的新特性和版本出现,但是直到项目迁移到新的站点并成为OpenSymphony项目家族的一员,才开始真正启动并受到也有的关注。 目前的版本已经是2.0以上,v2.x相对于v1.x有很多新特性出现,并有很多的改动

Quartz.NET 入门,带C#实例

荒凉一梦 提交于 2020-03-22 12:40:35
Quartz.NET 入门,带C#实例 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。 参考 官方学习文档: http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍: http://www.quartz-scheduler.net/documentation/quartz-2.x/quick-start.html 官方的源代码下载: http://sourceforge.net/projects/quartznet/files/quartznet/ 或者到我上传的csdn下载: http://download.csdn.net/detail/jys1216/8878305 下载下来官方的例子,我们来分析一下: 解压后,看到的文档 打开后,看到的项目结构如下: 项目可以直接运行: 运行后,我们可以看到,每隔10秒有输出,那是因为,在配置quart.net的服务文件里,配置了每10秒执行一次

Quartz.NET

若如初见. 提交于 2020-03-22 12:38:51
概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。 参考 官方学习文档: http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍: http://www.quartz-scheduler.net/documentation/quartz-2.x/quick-start.html 官方的源代码下载: http://sourceforge.net/projects/quartznet/files/quartznet/ 或者到我上传的csdn下载: http://download.csdn.net/detail/jys1216/8878305 下载下来官方的例子,我们来分析一下: 解压后,看到的文档 打开后,看到的项目结构如下: 项目可以直接运行: 运行后,我们可以看到,每隔10秒有输出,那是因为,在配置quart.net的服务文件里,配置了每10秒执行一次 快速搭建一个Quartz 第一步:安装

Quartz 配置

*爱你&永不变心* 提交于 2020-03-22 11:45:30
http://www.cnblogs.com/abeam/p/8044460.html 在之前的 使用 Topshelf 结合 Quartz.NET 创建 Windows 服务 文章中,使用到了 Quartz 的两个配置文件 quartz.config 和 quartz_jobs.xml。由于篇幅原因,没有细说,这里再说明下。本人觉得 Quertz 的强大之处莫过于他的配置文件,所以有必要深入理解下。 1. 首先,说说 quartz.config 文件 1) 先将上一篇中的配置贴出来 # You can configure your scheduler in either < quartz > configuration section # or in quartz properties file # Configuration section has precedence quartz.scheduler.instanceName = TopshelfAndQuartz # configure thread pool info quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz quartz.threadPool.threadCount = 10 quartz.threadPool

Quartz.NET的应用

◇◆丶佛笑我妖孽 提交于 2020-03-22 11:44:42
Quartz.NET 是一个开源的调度框架,什么是调度,有什么用,简单的说,如果你有这样的需求,你就可以用它来帮你。如一个在两个系统中同步数据的程序,需要在每天晚上运行。也就是说它能在一个相对固定的时间重复做同样一件事情。当然做什么事需要你自己来写了。以前写这样的程序多半是用一个控制台程序,然后加到windows的任务列表中。 看看QUarz.NET官方( http://quartznet.sourceforge.net/ )的描述吧 Quartz.NET is a full-featured, open source job scheduling system that can be used from smallest apps to large scale enterprise systems. Quartz.NET is a port of very propular open source Java job scheduling framework, Quartz . This project owes very much to original Java project, it's father James House and the project contributors. 又是一个从java移植过来的好东西,呵呵!不得不感叹java的发展速度和其所拥有的用户群。

Quartz.NET总结(三)Quartz 配置

蹲街弑〆低调 提交于 2020-03-22 11:34:58
  本来来源: http://www.cnblogs.com/zhangweizhong/p/4894354.html   前两篇文章,已经介绍了Quartz.NET的使用和Cron表达式表达式的写法,今天说一说Quartz的配置,Quartz相关的配置有三个quartz.config、quartz_jobs.xml、log4net.config。其中quartz.config是基本的配置, quartz_jobs.xml是相关的job 任务配置文件,log4net.config则是日志记录的配置。 1. quartz.config , 是Quartz.NET是基本的配置,主要是配置quartz_jobs.xml 的路径,及其他相关的参数。默认的quartz任务配置文件为quartz_jobs.xml,在quartz服务的根目录下,可以通过quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml进行设置。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # You can configure your scheduler in either

Quartz.NET总结(三)Quartz 配置

房东的猫 提交于 2020-03-22 11:27:19
转载自:http://www.cnblogs.com/zhangweizhong/p/4894354.html 前两篇文章,已经介绍了Quartz.NET的使用和Cron表达式表达式的写法,今天说一说Quartz的配置,Quartz相关的配置有三个quartz.config、quartz_jobs.xml、log4net.config。其中quartz.config是基本的配置, quartz_jobs.xml是相关的job 任务配置文件,log4net.config则是日志记录的配置。 1. quartz.config , 是Quartz.NET是基本的配置,主要是配置quartz_jobs.xml 的路径,及其他相关的参数。默认的quartz任务配置文件为quartz_jobs.xml,在quartz服务的根目录下,可以通过quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml进行设置。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # You can configure your scheduler in either <quartz>