quartz

Quartz.NET配置

纵然是瞬间 提交于 2020-03-22 11:14:49
概述 Quartz.NET 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。 此外,Quartz提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失。此外,Quartz还提供了组件式的侦听器、各种插件、线程池等功能。 参考 官方学习文档: http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍: http://www.oschina.net/p/quartz.net 快速搭建一个Quartz 第一步:引用 添加C5.dll、Common.Logging.dll、Common.Logging.Log4Net.dll、log4net.dll、Quartz.dll引用 C5.dll 一个C#和其他CLI语言的泛型集合类。.Net2.0及以上才可以使用。简介地址:http://www.itu.dk/research/c5/ Common.Logging.dll 通用日志接口 Common.Logging.Log4Net.dll 提供log4net对通用日志接口(Common.Logging)的实现 log4net.dll 小白都知道不解

Quartz动态改变任务时间

℡╲_俬逩灬. 提交于 2020-03-22 02:15:18
基于quartz-2.2 的动态任务调度 Quartz是一个完全由java编写的开源作业调度框架。 调度器 Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz怎样能并发运行多个作业的原理。Quartz依赖一套松耦合的线程池管理部件来管理线程环境。 今天测试了下基于quartz-2.2动态改变调度时间 <bean id="producer" class="com.springmvc.controller.Producer" /> <bean id="schedulerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="producer"/> <property name="targetMethod" value="executeListener"/> <property name="concurrent" value=

Quartz使用总结

落花浮王杯 提交于 2020-03-21 04:38:45
Quartz可以用来做什么? Quartz是一个任务调度框架。比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年4月1日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘 这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的Job起来干活。 一个简单的示例 这里面的所有例子都是基于Quartz 2.2.1 package com.test.quartz; import static org.quartz.DateBuilder.newDate; import static org.quartz.JobBuilder.newJob; import static org.quartz.SimpleScheduleBuilder.simpleSchedule; import static org.quartz.TriggerBuilder.newTrigger; import java.util.GregorianCalendar; import org.quartz.JobDetail; import org.quartz.Scheduler;

Quartz入门 (四) 监听器Listener

半世苍凉 提交于 2020-03-19 23:14:51
  Quartz的监听器用于当任务调度中你所关注事件发生时,能够及时获取这一事件的通知。类似于任务执行过程中的邮件、短信类的提醒。Quartz 的监听器有 Job监听器,Trigger监听器, Scheduler监听器 ,对不同层面进行监控。三者的使用方法类似,在开始介绍三种监听器之前,需要明确两个概念: 全局监听器 与 非全局监听器 ,二者的区别在于:全局监听器能够接收到所有的Job/Trigger的事件通知,而非全局监听器只能接收到在其上注册的Job或Trigger的事件,不在其上注册的Job或Trigger则不会进行监听。 JobListener   任务调度过程中,与任务Job相关的事件包括:job开始要执行的提示; job执行完成的提示灯。 public interface JobListener {   String getName(); void jobToBeExecuted(JobExecutionContext var1); void jobExecutionVetoed(JobExecutionContext var1); void jobWasExecuted(JobExecutionContext var1, JobExecutionException var2); } demo: 自己写一个监听器实现JobListener接口: public class

Quartz使用总结

◇◆丶佛笑我妖孽 提交于 2020-03-17 08:29:26
Quartz可以用来做什么? Quartz是一个任务调度框架。比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年4月1日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘 这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的Job起来干活。 一个简单的示例 这里面的所有例子都是基于Quartz 2.2.1 public class QuartzTest { public static void main(String[] args) { Quart(HelloQuartz.class,"*/1 * * * * ?"); } private static void Quart(Class<? extends Job> clazz,String cron) { try { //创建scheduler Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); //定义一个Trigger Trigger trigger = TriggerBuilder.newTrigger()

quartz监控日志(四)自定义QuartzJobBean来实现监控

99封情书 提交于 2020-03-17 01:20:58
某厂面试归来,发现自己落伍了!>>> quartz监控日志(一) quartz监控日志(二)添加监听器 quartz监控日志(三)查看卡死线程堆栈 上面几章介绍了quartz监控的几种方式,下面再介绍一种监听方式:自定义QuartzJobBean 一、自定义QuartzJobBean /** * 定时任务处理 * * @author lipeng * */ @DisallowConcurrentExecution public class ScheduleJob extends QuartzJobBean { private static final Logger log = LoggerFactory.getLogger(ScheduleJob.class); private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); private final static ISysJobLogService jobLogService = SpringUtils.getBean(ISysJobLogService.class); @Override protected void executeInternal(JobExecutionContext context)

Quartz入门与Demo

喜你入骨 提交于 2020-03-16 20:37:56
什么是Quartz?   Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer, Quartz增加了很多功能: 持久性作业 - 就是保持调度定时的状态; 作业管理 - 对调度作业进行有效的管理;   拿火车票购票来说,当你下单后,后台就会插入一条待支付的task(job),一般是30分钟,超过30min后就会执行这个job,去判断你是否支付,未支付就会取消此次订单;当你支付完成之后,后台拿到支付回调后就会再插入一条待消费的task(job),Job触发日期为火车票上的出发日期,超过这个时间就会执行这个job,判断是否使用等。 (1)首先我们需要定义实现一个定时功能的接口,我们可以称之为Task(或Job),如定时发送邮件的task(Job),重启机器的task(Job),优惠券到期发送短信提醒的task(Job),实现接口如下: (2)有了任务之后,还需要一个能够实现触发任务去执行的触发器,触发器Trigger最基本的功能是指定Job的执行时间,执行间隔,运行次数等。 (3)有了Job和Trigger后,怎么样将两者结合起来呢?即怎样指定Trigger去执行指定的Job呢?这时需要一个Schedule,来负责这个功能的实现。

quartz设置新增任务默认暂停

戏子无情 提交于 2020-03-16 11:18:01
新增一个定时任务,默认是【已运行】状态,如果想要设置为默认【暂停】状态,则需要对 qrtz_paused_trigger_graps 表进行操作,这个表存储暂停执行的Trigger组的信息 // 设置所有组都为暂停状态,添加以下语句 insert into qrtz_paused_trigger_grps(sched_name, trigger_group) values ('quartzscheduler', '_$_all_groups_paused_$_'); 添加以上信息后,不管是什么组任务,都会设置为暂停状态,并在qrtz_paused_trigger_graps表中添加一条对应的信息,如果不想全部设置为暂停,只想对指定的任务组做暂停操作,就不要执行以上的sql,并且修改"TRIGGER_GROUP"的值为你指定的组即可,如: insert into qrtz_paused_trigger_grps(sched_name, trigger_group) values ('quartzscheduler', '自定义组名称'); 如果想要设置任务默认执行,就把这个表中对应的信息删除掉即可 来源: 51CTO 作者: pannijingling 链接: https://blog.51cto.com/1197822/2478761

Quartz2.2.1操作手册

佐手、 提交于 2020-03-15 05:39:26
一、初识quartz 1 JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build(); 2 3 Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startNow().build(); 4 5 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); 6 scheduler.scheduleJob(job, trigger); 7 scheduler.start(); 8 scheduler.shutdown(); 认识quartz读懂这几行代码就可以了。 1.JobDetail是quartz的真正意义上的job,必须指定JobDetail的name,group属性,这两个属性是JobDetail的唯一标识; 其中HelloJob是一个implements Job的类,它是真正意义上我们的业务执行类,我们的任务逻辑实现写在execute(JOB接口唯一的方法)的方法里. 2.Trigger是JobDetail的触发器,JobDetail什么时候触发,触发间隔,触发次数都由它来指定;同样Trigger的name,group属性

Quartz使用总结

雨燕双飞 提交于 2020-03-13 19:29:02
废话的前言 以前凭借年轻,凡事都靠脑记。现在工作几年后发现,很多以前看过、用过的东西,再次拿起的时候总觉得记不牢靠。"好记性不如烂笔头"应该是某位上了年纪的大叔的切肤之痛(仅次于上了年纪的难言之瘾)。 我觉得这事得怪怪中国的应试教育,中国的考试方式就是要求把脑袋当数据库,以前中学那点知识,确实还能装得下。但现在所需的知识量再一次性装入大脑,就是内存溢出的节奏。另,再相信什么人脑只开发5%的蠢话了(「人脑只用了不到 5%」 的说法是否确有科学依据?)。更可行的方式,应该学学数据库,大脑只记忆知识的索引,而把知识的本身定义在外部的存储中(比如笔记)。基于这个理念,现在准备学着写点总结性的笔记。 那为什么不能基于google学习呢?因为google的索引不是你自己,不能精确找到你想要的东西。但它的好处是更海量,能给你原本压根不知道东西。所以,配合使用,疗效更好。 Quartz可以用来做什么? Quartz是一个任务调度框架。比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年4月1日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘 这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事