- 浏览: 309565 次
- 性别:
- 来自: 山西太原
文章分类
最新评论
-
A741841403:
core-renderer-CN.jar这个包是怎么引入的啊, ...
flying saucer 中文不显示、以及中文换行的问题解决 -
A741841403:
您好,能提供下,中文字体换行包的jar文件吗
flying saucer 中文不显示、以及中文换行的问题解决 -
nightw13h:
楼主 我也遇到了这个问题 照你的套路也把问题解决了 当时没 ...
maven 单元测试 Absent Code attribute in method that is not native or abstract in cl -
devilyard:
借地请教个问题:fatal: open /dev/null o ...
msysGit 安装后的配置 -
tiancai2:
如果在action中定义不是string类型的,而是一个Per ...
Struts2 、jquery之ajaxfileupload异步上传插件
1.实现一个管理类 ,对计时的程序进行管理
- import java.text.ParseException;
- import org.quartz.CronTrigger;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.SchedulerFactory;
- import org.quartz.impl.StdSchedulerFactory;
- /**
- * 定时任务管理类
- */
- public class QuartzManager {
- //SchedulerFactory 是创建定时任务的工厂
- private static SchedulerFactory gSchedulerFactory = new StdSchedulerFactory();
- private static String JOB_GROUP_NAME = "EXTJWEB_JOBGROUP_NAME" ; //默认的任务组
- private static String TRIGGER_GROUP_NAME = "EXTJWEB_TRIGGERGROUP_NAME" ; //默认计时器组
- /**
- * 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名
- *
- * @param jobName 任务名
- * @param jobClass 任务
- * @param time 时间设置,参考quartz说明文档
- * @throws SchedulerException
- * @throws ParseException
- */
- public static void addJob(String jobName, String jobClass, String time) {
- try {
- //获取一个Scheduler
- Scheduler sched = gSchedulerFactory.getScheduler();
- //创建一个任务 JobDetail
- /**
- * 参数1 任务名称
- * 参数2 任务组名
- * 参数3 任务执行的类
- */
- JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, Class.forName(jobClass)); // 任务名,任务组,任务执行类
- // 触发器 CronTrigger
- /**
- * 参数1 任务名称
- * 参数2 触发器组名
- */
- CronTrigger trigger = new CronTrigger(jobName, TRIGGER_GROUP_NAME); // 触发器名,触发器组
- trigger.setCronExpression(time);// 触发器时间设定
- //将 任务 和触发器 装进Scheduler
- sched.scheduleJob(jobDetail, trigger);
- // 启动
- if (!sched.isShutdown()){
- sched.start();
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 添加一个定时任务
- *
- * @param jobName 任务名
- * @param jobGroupName 任务组名
- * @param triggerName 触发器名
- * @param triggerGroupName 触发器组名
- * @param jobClass 任务
- * @param time 时间设置,参考quartz说明文档
- * @throws SchedulerException
- * @throws ParseException
- */
- public static void addJob(String jobName, String jobGroupName,
- String triggerName, String triggerGroupName, String jobClass, String time){
- try {
- Scheduler sched = gSchedulerFactory.getScheduler();
- JobDetail jobDetail = new JobDetail(jobName, jobGroupName, Class.forName(jobClass)); // 任务名,任务组,任务执行类
- // 触发器
- CronTrigger trigger = new CronTrigger(triggerName, triggerGroupName); // 触发器名,触发器组
- trigger.setCronExpression(time);// 触发器时间设定
- sched.scheduleJob(jobDetail, trigger);
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)
- *
- * @param jobName
- * @param time
- */
- @SuppressWarnings ( "unchecked" )
- public static void modifyJobTime(String jobName, String time) {
- try {
- Scheduler sched = gSchedulerFactory.getScheduler();
- CronTrigger trigger = (CronTrigger) sched.getTrigger(jobName, TRIGGER_GROUP_NAME);
- if (trigger == null ) {
- return ;
- }
- String oldTime = trigger.getCronExpression();
- if (!oldTime.equalsIgnoreCase(time)) {
- JobDetail jobDetail = sched.getJobDetail(jobName, JOB_GROUP_NAME);
- Class objJobClass = jobDetail.getJobClass();
- String jobClass = objJobClass.getName();
- removeJob(jobName);
- addJob(jobName, jobClass, time);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 修改一个任务的触发时间
- *
- * @param triggerName
- * @param triggerGroupName
- * @param time
- */
- public static void modifyJobTime(String triggerName,
- String triggerGroupName, String time) {
- try {
- Scheduler sched = gSchedulerFactory.getScheduler();
- CronTrigger trigger = (CronTrigger) sched.getTrigger(triggerName, triggerGroupName);
- if (trigger == null ) {
- return ;
- }
- String oldTime = trigger.getCronExpression();
- if (!oldTime.equalsIgnoreCase(time)) {
- CronTrigger ct = (CronTrigger) trigger;
- // 修改时间
- ct.setCronExpression(time);
- // 重启触发器
- sched.resumeTrigger(triggerName, triggerGroupName);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 移除一个任务(使用默认的任务组名,触发器名,触发器组名)
- *
- * @param jobName
- */
- public static void removeJob(String jobName) {
- try {
- Scheduler sched = gSchedulerFactory.getScheduler();
- sched.pauseTrigger(jobName, TRIGGER_GROUP_NAME);// 停止触发器
- sched.unscheduleJob(jobName, TRIGGER_GROUP_NAME);// 移除触发器
- sched.deleteJob(jobName, JOB_GROUP_NAME);// 删除任务
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 移除一个任务
- *
- * @param jobName
- * @param jobGroupName
- * @param triggerName
- * @param triggerGroupName
- */
- public static void removeJob(String jobName, String jobGroupName,
- String triggerName, String triggerGroupName) {
- try {
- Scheduler sched = gSchedulerFactory.getScheduler();
- sched.pauseTrigger(triggerName, triggerGroupName);// 停止触发器
- sched.unscheduleJob(triggerName, triggerGroupName);// 移除触发器
- sched.deleteJob(jobName, jobGroupName);// 删除任务
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 启动所有定时任务
- */
- public static void startJobs() {
- try {
- Scheduler sched = gSchedulerFactory.getScheduler();
- sched.start();
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- /**
- * 关闭所有定时任务
- */
- public static void shutdownJobs() {
- try {
- Scheduler sched = gSchedulerFactory.getScheduler();
- if (!sched.isShutdown()) {
- sched.shutdown();
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
- }
2.供定时程序调用的接口
- import org.quartz.Job;
- /**
- *
- * 供需要定时的程序调用
- */
- public interface InitiativeCollector extends Job {
- /**
- * 获得Job定时时间
- * ----------------------------
- * 【位置说明】:
- * 1 - 秒(0–59)
- * 2 - 分(0–59)
- * 3 - 时(0–23)
- * 4 - 日(1–31)
- * 5 - 月(1–12)
- * 6 - 星期(SUN–SAT or 1–7)
- * 7 - 年(可选, 1970–2099)
- * --------------------------------
- * 【符号说明】
- * 0 0 12 * * ?---------------在每天中午12:00触发
- * 0 15 10 ? * *---------------每天上午10:15 触发
- * 0 15 10 * * ?---------------每天上午10:15 触发
- * 0 15 10 * * ? *---------------每天上午10:15 触发
- * 0 15 10 * * ? 2005---------------在2005年中的每天上午10:15 触发
- * 0 * 14 * * ?---------------每天在下午2:00至2:59之间每分钟触发一次
- * 0 0/5 14 * * ?---------------每天在下午2:00至2:59之间每5分钟触发一次
- * 0 0/5 14,18 * * ?---------------每天在下午2:00至2:59和6:00至6:59之间的每5分钟触发一次
- * 0 0-5 14 * * ?---------------每天在下午2:00至2:05之间每分钟触发一次
- * 0 10,44 14 ? 3 WED---------------每三月份的星期三在下午2:00和2:44时触发
- * 0 15 10 ? * MON-FRI---------------从星期一至星期五的每天上午10:15触发
- * 0 15 10 15 * ?---------------在每个月的每15天的上午10:15触发
- * 0 15 10 L * ?---------------在每个月的最后一天的上午10:15触发
- * 0 15 10 ? * 6L---------------在每个月的最后一个星期五的上午10:15触发
- * 0 15 10 ? * 6L 2002-2005---------------在2002, 2003, 2004 and 2005年的每个月的最后一个星期五的上午10:15触发
- * 0 15 10 ? * 6#3---------------在每个月的第三个星期五的上午10:15触发
- * 0 0 12 1/5 * ?---------------从每月的第一天起每过5天的中午12:00时触发
- * 0 11 11 11 11 ?---------------在每个11月11日的上午11:11时触发
- * @return
- */
- String getTimer();
- }
3.需要调用时只需要实现接口传入所需启动的时间即可 和复写 Job中的execute()方法执行所需的操作 。
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- public class Collector implements InitiativeCollector {
- @Override
- public String getTimer() {
- //每周日的晚上23:30转上周的周统计数据
- return "0 30 23 ? * SUN" ;
- }
- @Override
- public void execute(JobExecutionContext arg0) throws JobExecutionException {
- <span style="white-space:pre" > </span> // 执行操作
- }
- }
4.调用addJob
- void addJob(String name,InitiativeCollector collector){
- <span style="white-space:pre" > </span>QuartzManager.addJob(name, collector.getClass().getName(), collector.getTimer());
- }
发表评论
-
java_时间戳与Date_相互转化
2014-10-20 10:07 2175时间戳是指文件属 ... -
java实现的图片缩放 压缩 裁剪工具!找了很久,市面上再也找不到比它缩放效果还好的代码了
2014-09-15 09:30 1606转载:http://springmvc-springd ... -
百分比计算
2014-09-02 17:40 959private static String getPerce ... -
java 过滤 html
2014-08-05 10:49 592public static String Html2Text ... -
表情替换
2014-07-21 13:28 863/** * 表情替换 * * make ... -
java自定义annotation
2014-07-14 13:37 704转:http://blog.csdn.net/lif ... -
java 字符串编码转换
2014-06-09 10:49 800public class ChangeCharset { ... -
图片工具类, 图片水印,文字水印,缩放,补白等
2014-05-25 15:17 1012package org.img; import jav ... -
字符串每隔指定长度插入指定字符串
2014-05-23 01:57 1656/** * 字符串每隔指定长度插入指定字符串 * ... -
解决:在点击用户退出登录时,再按浏览器的后退按钮,仍然能够看到之前的页面
2014-05-14 23:18 8800需要在服务器返回的response header里面 ... -
flying saucer 中文不显示、以及中文换行的问题解决
2014-05-13 11:11 33531首先下载官方的 iText-2.0.8.jar, 这是导出 ... -
Nginx + Memcached + Tomcat 集群负载均衡
2014-01-23 16:27 1051Tomcat准备 使用的Tomcat自行准备 下载 ... -
java反射
2014-01-13 09:56 751转:http://guntong.iteye.co ... -
普通类调用Spring bean对象
2013-10-31 13:35 1014转:http://412887952-qq-com. ... -
在线调用google翻译
2013-10-29 15:11 3284转:http://mylfd.itey ... -
Java线程的生命周期
2013-10-29 14:57 693当线程被创建并 启动之后,它既不是一启动就进入执行状态 ... -
学习Java注解Annotation
2013-10-28 11:08 911转:http://tomcat-oracle.ite ... -
三步学会Java Socket编程
2013-10-14 17:39 782第一步 充分理解Socket 1.什么是socket 所 ... -
spring mvc绑定对象String转Date
2013-07-31 15:20 934使用spring的mvc,直接将页面参数绑定到对象中,对象中 ... -
Spring与Hibernate调整自动扫描时的陷阱
2013-07-09 17:09 1126Spring与Hibernate整合自动扫描时的陷阱 在配置 ...
相关推荐
《.NET Quartz 任务调度平台源码解析与应用》 .NET Quartz 是一款强大的任务调度框架,它为.NET开发者提供了一种高效、灵活的方式来安排和执行周期性任务。Quartz.NET 是开源项目Quartz的.NET版本,它允许开发人员...
Quartz任务调度器是一款强大的开源任务调度框架,广泛应用于Java应用程序中,用于自动化定时任务的执行。它提供了灵活的任务调度机制,使得开发者可以方便地定义、安排和执行各种任务。在与Spring框架整合后,Quartz...
**C#基于Quartz任务调度系统** 在软件开发中,任务调度是一项重要的功能,它允许开发者安排任务在特定时间执行,比如数据同步、定时备份、报告生成等。Quartz是一款强大的开源任务调度库,广泛应用于Java和.NET生态...
Quartz任务调度是一款开源的Java定时任务框架,广泛应用于企业级应用系统中,用于执行周期性的后台任务。这款工具提供了一种灵活的方式来安排和管理任务,使得开发者无需在业务代码中处理时间相关的逻辑,而是通过...
本“quartz任务调度框架简单实用小demo”旨在帮助开发者快速理解和应用Quartz。 1. **Quartz基本概念** - **Job**: 任务的基本单元,代表一个需要执行的工作。 - **Trigger**: 触发器,决定Job何时被执行。 - **...
### Quartz任务调度管理 #### 一、任务调度基础概念 任务调度是指系统按照预先设定的时间规则来自动执行特定任务的功能。这种机制广泛应用于各种场景,例如数据备份、定期检查资源状态、发送邮件通知等。 ##### ...
基于Spring Boot的Quartz任务调度系统 项目概述 本项目是一个基于Spring Boot和Quartz的任务调度系统,旨在提供灵活的任务管理和调度功能。系统支持多种任务类型,包括Cron表达式任务和单次时间任务,并提供了丰富...
里面包含了两个工程项目: 1.Java project工程(含jar包,JDK1.6)。 是spring+quartz的任务调度实例。 2.Java web工程(含jar包,JDK1.7)。 spring+mybatis+quartz任务调度实例
本项目"spring+quartz任务调度代码版"显然是一个结合了这两者的实践案例,旨在展示如何在Spring环境下集成和使用Quartz进行任务调度。 Spring框架是一个开源的应用框架,它提供了丰富的功能,包括依赖注入、AOP...
标题“Spring quartz任务调度”指的是在Java开发中利用Spring框架集成Quartz库来实现应用程序的任务调度功能。Quartz是一款开源的作业调度框架,它允许开发者安排任务在特定时间执行,而Spring框架则提供了与Quartz...
Quartz任务调度--详细教程,讲的非常详细
Spring框架作为一个全面的企业级应用开发解决方案,提供了强大的任务调度支持,而Quartz则是一个流行的开源作业调度库,能够与Spring很好地集成。现在,我们就来深入探讨"spring quartz 任务调度"这一主题。 首先,...
Quartz任务调度框架教程中文版 chm格式
**Spring Quartz 任务调度** Spring Quartz 是一个基于 Java 的任务调度框架,它允许开发者定义定时任务并在应用程序中灵活地调度这些任务。这个框架是 Spring 和 Quartz Scheduler 的集成,提供了与 Spring 框架的...
总的来说,这个 Quartz 任务调度的运行示例为你提供了一个动手实践的机会,加深对 Quartz 工作原理的理解。通过学习和应用这个示例,你将能够自如地在 Java 应用程序中实现复杂的定时任务调度。
本篇将通过一个简单的Quartz任务调度实例,来深入理解其核心概念和用法。 首先,我们需要了解Quartz的主要组件: 1. **Job**:工作接口,代表一个具体的任务,实现`org.quartz.Job`接口,定义了`execute...
Quartz任务调度是一种广泛使用的开源任务调度框架,它允许开发者创建、调度和管理定时任务。初学者通过学习Quartz,可以提升其编程技能,尤其是在Java应用程序中实现复杂定时任务的能力。 1. **Quartz框架**: - ...
### Quartz任务调度快速入门知识点详解 #### 一、Quartz框架简介 Quartz是一个功能强大的开源作业调度框架,被广泛应用于Java应用中实现任务的定时调度。Quartz通过对任务调度领域的核心问题进行高度抽象,提炼出...
Quartz任务调度框架是Java开发中的一个强大工具,用于在应用程序中实现定时任务的自动执行。它是一个开源的作业调度库,可以与Java应用程序无缝集成,允许开发人员定义和调度复杂的作业执行计划。Quartz提供了丰富的...