trigger

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设置新增任务默认暂停

戏子无情 提交于 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就是来干这样的事

[WPF疑难]在WPF中显示动态GIF

吃可爱长大的小学妹 提交于 2020-03-12 04:53:24
简介:   这是利用WPF作为前端技术,实现桌面版微信多客服系统。项目采用Prism作为前端框架,采用MVVM模式极好的对UI和逻辑代码分离,使用MefBootstrapper集成的MEF IOC容器,解耦各模块对象。合理利用 IEventAggregator 实现事件和交互。文章在介绍对应功能时候会给出相关实现的参考,读者可以参考改进,引入到自己的项目中。 程序运行界面及功能预览: 一、登陆: 功能:支持记住用户和用户设置,可选择记住用户密码。 实现相关: 自定义登陆窗口,引入Microsoft.Windows.Shell。可参考 WPF Custom Chrome Library 和 MSDN WindowChrome Class 有相关自定义窗口实现。 最小化、最大化、关闭按钮功能实现可参考上面的例子。 登陆按钮,自定义Style,重写Button的Template,参考代码如下: <Style x:Key="LogginButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid > <Border x:Name="Bd" Background="

[Android] Android 锁屏实现与总结 (三)

别来无恙 提交于 2020-03-09 06:08:06
上接: Android 锁屏实现与总结 (二) 系列文章链接如下: [Android] Android 锁屏实现与总结 (一) [Android] Android 锁屏实现与总结 (二) [Android] Android 锁屏实现与总结 (三) 代码文件地址: https://github.com/wukong1688/Android-BaseLockScreen 3、按键的屏蔽 当自定义锁屏页最终出现在手机上时,我们希望它像系统锁屏页那样屹立不倒,所有的按键都不能触动它,只有通过划屏或者指纹才能解锁,因此有必要对按键进行一定程度上的屏蔽。针对只有虚拟按键的手机,我们可以通过隐藏虚拟按键的方式部分解决这个问题。但是当用户在锁屏页底部滑动,隐藏后的虚拟按键还是会滑出,而且如果用户是物理按键的话就必须进行屏蔽了。需要重写Activity的onBackPressed()方法即可。 public boolean onKeyDown(int keyCode, KeyEvent event) { int key = event.getKeyCode(); switch (key) { case KeyEvent.KEYCODE_BACK: { return true; } case KeyEvent.KEYCODE_MENU: { return true; } } return super

Quartz任务调度入门

孤人 提交于 2020-03-07 08:23:46
了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述: ●Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。 Job运行时的信息保存在JobDataMap实例中 ; ●JobDetail:Quartz在每次执行Job时,都重新创建一个Job实例,所以它不直接接受一个Job的实例,相反它接收一个Job实现类,以便运行时通过newInstance()的反射机制实例化Job。因此需要通过一个类来描述Job的实现类及其它相关的静态信息,如Job名字、描述、关联监听器等信息,JobDetail承担了这一角色。 通过该类的构造函数可以更具体地了解它的功用:JobDetail(java.lang.String name, java.lang.String group, java.lang.Class jobClass),该构造函数要求指定Job的实现类,以及任务在Scheduler中的组名和Job名称; ●Trigger:是一个类,描述触发Job执行的时间触发规则

MySQL 获取某个时间段每一天、每一个小时的统计数据

浪尽此生 提交于 2020-03-07 08:03:20
获取每一天的统计数据 做项目的时候需要统对项目日志做分析,其中有一个需求是获取某个给定的时间段内,每一天的日志数据,比如说要获取从2018-02-02 09:18:36到2018-03-05 23:18:36这个时间段内,统计出每一天的日志数据,一般情况下,看到这种需求都是考虑使用函数来搞定,直接上sql语句 SELECT DATE_FORMAT(trigger_time, '%Y-%m-%d') triggerDay, COUNT(id) triggerCount FROM `job_qrtz_trigger_log` WHERE trigger_time BETWEEN '2018-02-02 09:18:36' AND '2018-03-05 23:18:36' GROUP BY triggerDay ORDER BY trigger_time; 对上面的sql做简单的解释 首先,查询字段这里,COUNT(id) triggerCount是我们需要的统计数据的条数,按照实际需求可以添加需要的字段。 DATE_FORMAT(trigger_time, '%Y-%m-%d') triggerDay 这个是将特定日期格式化成 YYYY-mm-dd 格式的日期。这里的格式用于后面的分组,所以按照不同的需求,可以自定义格式。 我的需求是获取每一天的日志数据,我就按照 年份-月份-日期

定时任务quartz

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-03 11:10:30
原文: https://www.cnblogs.com/rinack/p/7815272.html package com.common.util; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; import org.quartz.Job; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.JobKey; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.TriggerKey; import org.quartz.impl.StdSchedulerFactory; /** * * @Description * @author qgw * 2016 上午10:05:59 ^_^ */ public class QuartzManager { private static