- 浏览: 1045876 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
首先关于Quartz的一篇详细介绍的文章可以参考我博客中的一篇关于介绍该框架的文章。
我做的该项目是一个网站预警系统,通过自己定义一个抽象类,采用策略模式,然后相关的监控子程序继承该类,配置配置文件的方式集成到预警系统中。
首先我通过我的主客户端程序的例子来解释Quartz来介绍我常用到的API
注释:QUARTZ中首先是一个组对应多个trigger
package client;
import org.dom4j.Document;
import org.quartz.CronExpression;
import org.quartz.CronTrigger;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import com.util.DataUtil;
import com.util.Log;
import com.util.PrintUtil;
import com.util.XmlHandle;
public class Client {
/**
* @param args
*/
public static XmlHandle xmlHandle = XmlHandle.getInstance();
public static Document document ;
public static String TRIGGER_GROUP="JOBCN_GROUP_MAIL";//我自己制定的组名称,指定名称
public static void main(String[] args) {
document = xmlHandle.getXmlFromFile("conf\\alarm-config.xml");
try {
String reload = xmlHandle.getSingleXmlData(document,"/conf","reload");
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
if("".equals(reload)||reload==null||"true".equals(reload))
{
}
//如果重启Client端,那么首先将所有的任务队列全部删除,然后重新组装CLIENT端
String[] triggerGroups = scheduler.getTriggerGroupNames();//该方法是得到所有的组名称
for (int i = 0; i < triggerGroups.length; i++) {
String[] triggers = scheduler.getTriggerNames(triggerGroups[i]);//该方法是得到该组里面所有的trigger
for (int j = 0; j < triggers.length; j++) {
Trigger tg = scheduler.getTrigger(triggers[j],
triggerGroups[i]);
if (tg instanceof CronTrigger)
{
//System.out.println(tg.getFullName()+":"+TRIGGER_GROUP+"."+"CronTrigger_"+bean.getClassName());
//System.out.println(tg.getJobName()+":"+tg.getJobGroup());
scheduler.deleteJob(tg.getJobName(), tg.getJobGroup());//该方法是删除指定的任务,传入的是trigger的名字和组名
}
}
}
JobDetail jobDetail = new JobDetail("JOB_MAIL", "Group_MAIL",AlarmClient.class);
//①-1:创建CronTrigger,指定组及名称
JobDataMap dataMap = new JobDataMap();
dataMap.put("bean", bean);//我们可以将我们要传入的某个类通过JobDataMap的载体传到对应的job中
jobDetail.setJobDataMap(dataMap);
CronTrigger cronTrigger = new CronTrigger("CronTrigger_MAIL",TRIGGER_GROUP);
CronExpression cexp = new CronExpression("0/30 * * * * ?");//①-2:定义Cron表达式
cronTrigger.setCronExpression(cexp);//①-3:设置Cron表达式
scheduler.scheduleJob(jobDetail, cronTrigger);//④ 注册并进行调度
scheduler.start();
} catch (Exception e) {
//e.printStackTrace();
}
}
}
具体任务类的定义,只注明主体方法:
public void execute(JobExecutionContext jobCtx) throws JobExecutionException {
//我们制定一个具体的任务,必须实现execute方法,该方法传入一个job的上下文,通过下面的代码来得到保存在datamap中的数据,注意,如果要通过载体传输的数据一定要实现Serializable接口
例如:我们传的 public class AlarmBean implements Serializable
JobDetail jobDetail =jobCtx.getJobDetail();
JobDataMap dataMap = jobDetail.getJobDataMap();
this.bean = getBean(dataMap);
System.out.println("Test:"+bean.getMailHost());
}
public AlarmBean getBean(Map map)
{
AlarmBean beans = null;
Iterator it = map.entrySet().iterator();
while(it.hasNext())
{
try {
Map.Entry m = (Map.Entry) it.next();
beans = (AlarmBean) m.getValue();
} catch (Exception e) {
e.printStackTrace();
}
}
return beans;
}
Quartz中SimpleTrigger的探讨
1.来写一个每隔10秒启动一次任务的例子.
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class SimpleTriggerTest
{
public static void main(String[] args) throws Exception
{
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
// 系统当前时间10秒后
long startTime = System.currentTimeMillis() + 10000L;
SimpleTrigger trigger = new SimpleTrigger("myTrigger", null, new Date(
startTime), null, 0, 0L);
JobDetail jobDetail = new JobDetail();
jobDetail.setJobClass(StringTest.class);
jobDetail.setName("test");
jobDetail.setGroup("A");
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
}
}
2.创建一个触发器,立即启动,每隔60秒,启动一次.
null,
new Date(),
null,
SimpleTrigger.REPEAT_INDEFINITELY,
60L * 1000L);
SimpleTrigger trigger = new SimpleTrigger("myTrigger",
"myGroup",
new Date(),
new Date(endTime),
SimpleTrigger.REPEAT_INDEFINITELY,
10L * 1000L);
cal.set(cal.HOUR, 10);
cal.set(cal.MINUTE, 30);
cal.set(cal.SECOND, 0);
cal.set(cal.MILLISECOND, 0);
Data startTime = cal.getTime()
SimpleTrigger trigger = new SimpleTrigger("myTrigger",
null,
startTime,
null,
5,
30L * 1000L);
仔细体会SimpleTrigger的例子,你会发现用这个制作执行计划会更简单方便.
- AlarmSystem.rar (114.6 KB)
- 下载次数: 8
发表评论
-
自定义注解之运行时注解(RetentionPolicy.RUNTIME)
2017-10-25 11:42 654对注解概念不了解的可以先看这个:Java注解基础概念总结 ... -
debug模式很慢的解决办法
2017-10-18 09:00 451今天照常使用MyEclipse 6.5 Blue Editi ... -
今天碰到项目中要做一个某一年月报表的页面的学习提高
2011-05-21 06:33 991今天在项目中要做一个月报表,由于我采用的是ef 4.1的框架, ... -
预警系统
2010-12-16 15:28 1369根据公司需求,所编写的一个预警系统框架,将lib1.zip和l ... -
对quartz使用框架调度总结
2010-11-17 10:56 1752在项目中的使用需求: 1.可以使用一个A程序定期的去扫描配置 ... -
利用反射给JAVABEAN实例赋值
2010-11-15 22:08 1419package com.util; import java. ... -
logback 日志记录到数据库中
2010-11-10 11:04 6175<!--不采用连接池的配 ... -
logback 关于日志发送邮件配置总结
2010-11-10 09:40 4131<configuration debug="f ... -
sql server语句优化实例
2010-11-10 08:42 1472SQL语句优化有一个很重要的方法: 在Where中的条件表达 ... -
在新的项目中使用logback来作为日志记录系统
2010-11-09 16:19 4203Logback手册中文版文档版本:0.1发布日期:2010年4 ... -
Quartz 监听器的应用
2010-11-08 17:32 2317当我在项目中用到任务调用的时候,有必要在每次调用任务和任务出现 ... -
编写批处理命令来执行JAVA文件
2010-11-04 11:13 1820JAVA工程路径结构 Project ------l ... -
mysql中采用concat来拼接中文字符乱码解决方式
2010-10-13 17:47 2341mysql concat乱码问题解决concat(str1,s ... -
WEB工程加入FLEX技术,遇到跨域的问题
2010-09-16 08:15 1565在我FLEX博客中有提到怎么将FLEX整合到JAVA的WEB工 ... -
关于Struts2中如何去取得ServletContext的方法
2010-09-16 08:07 2719在我的上一篇文章中说到,将DB4O的DAO类放入到Servel ... -
关于DB4O的学习总结
2010-09-16 07:59 1696一下是一个DB4O的操作DAO。 作为DB4O在WEB项目中 ... -
SVN服务器配置总结
2010-09-16 07:40 3375软件下载 服务器和客户端安装 建立版本库(Reposito ...
相关推荐
4_主流定时任务框架优缺点和什么是分布式定时任务.mp4 5_环境搭建总体流程.mp4 6_前期准备-JDK.mp4 7_前期准备-Maven.mp4 8_前期准备-MySQL.mp4 9_前期准备-Zookeeper.mp4 10_知识点检测与小结.mp4 11_Elastic-Job...
8、Quartz.NET定时任务框架实例(移植Quartz.Net定时任务框架,实现可配置的执行定时任务) 9、spring+quartz动态定时任务创建 +mybatis(包含quartz动态定时任务的) 10、C#实现的自定义定时任务 可定时运行 多任务...
Spring普通定时任务和动态设置定时任务.本资源仅供Spring有关的框架学习使用
从一个账务系统独立出来的自动任务系统,带有部分账务处理功能。用的是ssh框架和quartz...专门学习自动任务或ssh框架的小伙伴们可以看下。附源代码,没有数据库的数据,没有jar包(自己根据红叉去下载)。关键看代码。
Java实现定时任务,学习和使用企业级框架quartz
QuartzJob是一个分布式的定时任务协调器,此资源详细介绍讲解了QuartzJob的方方面面,是一套全面系统的QuartzJob学习教程资料。 资源包含使用示例代码,讲义,中文和英文版的框架手册随时查阅,和TimerTask的对比,...
Java实现定时任务,学习和使用企业级框架quartz包
这是一个本人自主编写的quartz调度框架的入门实例,非常简单,无配置文件,纯java调度,main 方法执行,控制台输出,可作为quartz框架的入门学习使用
本项目为学校大二卓越项目的具体实现。整体实现了一个小区物业管理系统的基础操作,但值得注意的是,并不具备适应现实...其二,系统中集成了基于Quartz的定时任务管理模块,可通过接口在线管理定时任务的启用与停止。
XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发Swift、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 Documentation 二次开发内容 1、数据库连接池修改为druid 2、...
校园o2o购物平台程序的编写使用JAVA编程语言,IDE使用Spring tool suite,一期结合当下流行的框架Spring,Mybatis,SpringMVC,二期结合SpringBoot微服务,Quartz定时任务框架,具体技术细节包括Redis缓存技术,MySQL...
- 定时任务:整合Quartz做定时任务,加入任务日志,任务运行情况一目了然 - 代码生成:高灵活度生成前后端代码,减少大量重复的工作任务(逆向有很多方案,这种基于template的有一定的灵活性) - 邮件工具:配合富...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能 引入API模板,根据token作为登录令牌,极大的方便了APP接口开发 引入Hibernate Validator校验框架,轻松实现后端校验 引入云...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
java8 stream 源码 代码开发文档(内含详细开发过程): ...引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能 引入API模板,根据token作为登录令牌,极大的方便了APP接口开发
【作品名称】:基于springboot的设备管理系统 【适用人群】:适用于希望学习不同...引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能 页面交互使用Vue2.x,极大的提高了开发效率
hdw-dubbo hdw-dubbo微服务开发平台,具有统一授权,认证后台管理系统,其中包含用户管理,资源权限管理等多个模块,支持多...♡quartz定时任务,可动态完成任务的添加,修改,删除,暂停,恢复及日志查看等功能 彼AP