- 浏览: 534446 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
gaolegao2008:
如果报 is_volum 列名找不到之类的,我是从新部署了一个 ...
spring quartz 定时器报错 -
gaolegao2008:
部署到linux上时,还有一种情况就是mysql数据库区分大小 ...
spring quartz 定时器报错 -
qq123zhz:
yahier 写道 对我有帮助,但我看的一个demo程序,却没 ...
spring quartz 定时器报错 -
qq123zhz:
这个要在eclipse的插件环境下运行的,你不懂eclipse ...
GEF 自动布局 -
qq123zhz:
这个很久了,不记得啥时候写的了
json转为Map
很有用的quartz的学习资料。。。
本人最近也一值在项目是使用。。。。。
package com.chinaGPS.driverBook.service.impl; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.springframework.context.support.FileSystemXmlApplicationContext; import org.springframework.scheduling.quartz.CronTriggerBean; import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean; import com.chinaGPS.driverBook.dao.ScheduleDao; import com.chinaGPS.driverBook.pojo.ScheduleInfo; import com.chinaGPS.driverBook.service.IQuartzTaskService; import com.chinaGPS.driverBook.service.job.WeatherJob; /** * 定义任务调度 * * @author zhz * */ public class QuartzTaskService implements IQuartzTaskService { private static final String WEATHERJOBNAME = "weatherTrigger"; private static final String WEATHERGROUP = "weatherGroup"; private static final String WEATHERTARGETMETHOD = "saveCityWeather"; private static IQuartzTaskService manager; private Scheduler schedulerFactory; private WeatherJob weatherJob; private ScheduleDao scheduleDao; private CronTriggerBean trigger; private JobDetail weatherJobDetail; public ScheduleDao getScheduleDao() { return scheduleDao; } public void setScheduleDao(ScheduleDao scheduleDao) { this.scheduleDao = scheduleDao; } public WeatherJob getWeatherJob() { return weatherJob; } public void setWeatherJob(WeatherJob weatherJob) { this.weatherJob = weatherJob; } public Scheduler getSchedulerFactory() { return schedulerFactory; } public void setSchedulerFactory(Scheduler schedulerFactory) { this.schedulerFactory = schedulerFactory; } @Override public void reWeatherCatchScheduleJob() { try { // 运行时可通过动态注入的scheduler得到trigger List<ScheduleInfo> dbCronExpressionList = getCronExpressionFromDB(); //先清除trigger String [] triggesName = schedulerFactory.getTriggerNames(WEATHERGROUP); for (int i = 0; i < triggesName.length; i++) { String triggerName = triggesName[i]; schedulerFactory.unscheduleJob(triggerName, WEATHERGROUP); } if(schedulerFactory.getTriggerNames(WEATHERGROUP).length==0){ //然后暂停任务工厂 System.out.println("后台定时调度天气任务,重置。。。。。"); } for (ScheduleInfo info : dbCronExpressionList) { weatherJobDetail = new JobDetail(info.getId(), WEATHERGROUP, WeatherJob.class); trigger = new CronTriggerBean(); trigger.setName(info.getId()); // trigger.setJobDetail(weatherJobDetail); trigger.setGroup(WEATHERGROUP); trigger.setCronExpression(info.getJobCronExp()); schedulerFactory.scheduleJob(weatherJobDetail,trigger); } schedulerFactory.startDelayed(3); } catch (SchedulerException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } // 下面是具体的job内容,可自行设置 weatherJob.saveCityWeather(); // executeJobDetail(); } private List<ScheduleInfo> getCronExpressionFromDB() { return scheduleDao.findAll(); // return "0/10 * * * * ?"; } public static void main(String[] args) { Collection<String> files = new ArrayList<String>(); files.add("/WebContent/WEB-INF/spring/*.xml"); FileSystemXmlApplicationContext ctx = new FileSystemXmlApplicationContext( files.toArray(new String[0])); manager = (IQuartzTaskService) ctx.getBean("quartzTaskService"); manager.reWeatherCatchScheduleJob(); } }
以上是编程调用。。。。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" default-autowire="byName"> <!-- 每天晚上12点调度 三个任务 --> <bean id="sysPwdJob" class="com.chinaGPS.driverBook.service.job.SysPwdSuccessJob"> <property name="userManagerService" ref="userManagerService"></property> </bean> <bean id="servicePwdJob" class="com.chinaGPS.driverBook.service.job.ServicePwdFailResetJob"> <property name="userManagerService" ref="userManagerService"></property> </bean> <bean id="carBindJob" class="com.chinaGPS.driverBook.service.job.BindCarFailResetJob"></bean> <!-- 天气任务 --> <bean id="weatherJob" class="com.chinaGPS.driverBook.service.job.WeatherJob"></bean> <!-- 定时任务开始 --> <bean id="sysPwdJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="sysPwdJob"/> </property> <property name="targetMethod"> <value>resetCount</value> </property> </bean> <bean id="servicePwdJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="servicePwdJob"/> </property> <property name="targetMethod"> <value>resetCount</value> </property> </bean> <bean id="carBindJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="carBindJob"/> </property> <property name="targetMethod"> <value>resetCount</value> </property> </bean> <!-- 天气任务 保存json任务--> <bean id="weatherJobSaveDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="weatherJob"/> </property> <property name="targetMethod"> <value>saveCityWeather</value> </property> </bean> <!-- 天气任务 deletejson任务--> <!-- <bean id="weatherJobDeleteDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> --> <!-- <property name="targetObject"> --> <!-- <ref bean="weatherJob"/> --> <!-- </property> --> <!-- <property name="targetMethod"> --> <!-- <value>saveCityWeather</value> --> <!-- </property> --> <!-- </bean> --> <!-- 定义trigger --> <bean id="sysPwdTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <!-- 这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下 --> <property name="jobDetail"> <ref bean="sysPwdJobDetail" /> </property> <!-- 每天凌晨12点执行一次 --> <property name="cronExpression"> <value>0 0 0 * * ?</value> </property> </bean> <bean id="servicePwdTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <!-- 这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下 --> <property name="jobDetail"> <ref bean="servicePwdJobDetail" /> </property> <!-- 每天凌晨12点执行一次 --> <property name="cronExpression"> <value>0 0 0 * * ?</value> </property> </bean> <bean id="carBindTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <!-- 这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下 --> <property name="jobDetail"> <ref bean="carBindJobDetail" /> </property> <!-- 每天凌晨12点执行一次 --> <property name="cronExpression"> <value>0 0 0 * * ?</value> </property> </bean> <!-- 天气json定时 触发--> <bean id="weatherTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="weatherJobSaveDetail"/> </property> <property name="cronExpression"> <value>0 0 0 * * ?</value> </property> </bean> <!-- 触发器工厂,将所有的定时任务都注入工厂--> <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" autowire="no" lazy-init="false"> <!-- 添加触发器 --> <property name="triggers"> <list> <!-- 将上面定义的测试定时任务注入(可以定义多个定时任务,同时注入)--> <ref local="sysPwdTrigger" /> <ref local="servicePwdTrigger" /> <ref local="carBindTrigger" /> <ref local="weatherTrigger"/> </list> </property> </bean> <!-- 定时任务 结束 --> <bean id="quartzTaskService" class="com.chinaGPS.driverBook.service.impl.QuartzTaskService" scope="prototype"> <property name="schedulerFactory" ref="schedulerFactory"></property> <property name="scheduleDao" ref="scheduleDao"></property> </bean> </beans>
以上是spring 配置调用。。。。。。。。。。。
编程调用时,可以对某个任务设置多个触发时间任务,任务执行的规则来自数据库。。。。。。。。
xml配置就很难做到这一点。。。。。。
- Quartz_Job.rar (1.2 MB)
- 下载次数: 19
- Quartz_API_1.65.zip (1011.3 KB)
- 下载次数: 19
发表评论
-
eclipse Resource 资料
2016-11-15 16:51 617IWorkspace/IWorkspaceRoot/IPro ... -
.docker/machine/machines/default/ca.pem: no such file or directory
2016-09-06 15:59 886Was doing adocker-machine env ... -
list.AddAll 去重复
2015-09-11 12:01 5901问题描述: 有List A和B,A、B中元素都是可保证 ... -
eclipse 插件开发 Setting the Java build path
2014-06-04 11:00 1216JDT Plug-in Developer Guide & ... -
xstream 下划线_问题
2013-12-30 10:18 4180最近在使用xtream 1.4.3,出现了如下的问题: ... -
RCP MessageConsole设置显示的最大行数
2013-09-05 11:34 966MessageConsole.setWaterMarks(5 ... -
freemarker 自定义freeMarker标签
2013-08-12 16:09 3886import java.io.IOException; i ... -
xstream javabean设置属性默认值的问题
2013-04-24 09:54 6568在xstream反序列化使用过程中发现,如果xml无该属 ... -
在使用xstream反序列化时遇到的问题
2013-04-24 09:42 1747public abstract class SBase { ... -
RCP 知识点
2013-03-14 15:10 997获得工作区的所有工程: //获得workspace的所有 ... -
RCP FileSystem 文件系统
2013-02-19 10:42 1381public static File toLocalFile ... -
json转为Map
2013-01-19 22:27 32829package digu.pendant.util; ... -
eclipse4.x 去掉quick access
2013-01-11 14:57 4057/** * 去掉quick access * ... -
xstream 的高级用法,自定义输出结构
2012-12-19 14:35 2423public static void main(Stri ... -
jdt 核心知识
2012-11-27 21:39 1277jdt官方核心知识...................... ... -
jdt 创建java工程,生成代码,运行main方法
2012-11-27 10:50 2345public static IJavaProje ... -
两个osgi的例子程序
2012-11-20 10:21 1077osgi的例子....................直接上代 ... -
jfreechart 的官方例子,很全
2012-11-20 10:19 944jfreechart的官方的demon,很全。 -
SWT 隔行换色-自动宽高调整
2012-10-16 17:32 1710** * 创建:ZhengXi 2009-8-4 */ ... -
RCP 为action添加操作进度条
2012-10-16 13:59 1292public class StartAction extend ...
相关推荐
Quartz定时任务调度是Java平台上广泛使用的开源作业调度框架,它允许开发者定义并执行复杂的调度任务,例如定期执行某些业务逻辑或系统维护操作。在基于Web的开发环境中,Quartz可以很好地集成到Spring等框架中,...
Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用中实现复杂的定时任务调度。Quartz是一款开源的作业调度框架,支持丰富的调度策略,可以满足各种定时...
Quartz定时任务调度是Java开发中常用的一种任务调度框架,它允许开发者定义任务(JobDetail)和触发器(Trigger),以便在指定的时间点执行特定的任务。以下是对Quartz核心概念的详细说明: 1. **Scheduler**:...
Spring Quartz 是一个强大的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Spring框架中集成Quartz,可以充分利用Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming...
Quartz.NET是一个强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。它提供了高度灵活的调度功能,使得开发者可以轻松地定义和控制任务的执行时间。在"Quartz.net作业调度自定义定时执行任务多任务执行...
结合使用Quartz.NET和TopShelf,我们可以构建一个在Windows服务中运行的定时任务调度系统。 Quartz.NET的特性包括: 1. **灵活的调度**:Quartz.NET支持多种调度模式,如简单触发器、cron触发器,可以按照精确时间...
【Quartz定时任务】是Java领域的一个强大任务调度框架,但在C#中也有相应的实现,如标题所示,这里讨论的是C#控制台应用中使用Quartz.NET进行定时任务的实现。Quartz.NET允许开发者在应用程序中安排任务在特定时间...
Java Quartz 是一个强大的开源任务调度库,用于在Java应用程序中创建和管理定时任务。Quartz 提供了丰富的API,使得开发者能够灵活地定义任务,并精确控制任务的执行时间。本项目利用Quartz 实现了基于Cron表达式的...
Quartz是一款广泛使用的开源作业调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在实际应用中,我们可能需要根据业务需求动态地配置定时任务的执行方式,例如,某些任务可能需要串行执行,而其他任务则...
### Quartz定时任务表达式详解 在探讨Quartz定时任务表达式的使用之前,我们先了解下Quartz是什么。Quartz是一个开源的作业调度框架,能够触发在指定时间运行的任务,广泛应用于Java应用程序中进行定时任务的管理。...
本篇文章将深入探讨如何使用Quartz在Java应用程序中实现任务调度。 Quartz库提供了一个灵活的API,可以创建、调度和管理任务,这些任务被称为Job。每个Job都与一个Trigger关联,Trigger定义了何时启动Job。在Java...
【Quartz任务调度集群】是Java开发中解决定时任务需求的一种高效方案,它由OpenSymphony团队开发,自2001年以来广泛应用于各种项目。Quartz的核心优势在于其灵活性和简单性,允许开发者自由定义任务触发的时间表,...
SpringBoot整合Quartz实现定时任务调度是企业级应用中常见的需求,主要用于自动化执行某些周期性的任务,例如数据备份、报表生成、系统维护等。Quartz是一个功能强大的开源作业调度框架,能够灵活地定义任务和调度...
这里我们将详细探讨Quartz定时任务在数据库中的11张核心表结构。 1. **QRTZ_JOB_DETAILS**:此表存储所有Job的详细信息,如Job类名、Job数据映射等。每个Job实例在此表中对应一条记录,Job的唯一标识由`SCHED_NAME`...
总之,Quartz定时任务框架为Java开发者提供了一套灵活且功能强大的任务调度解决方案。通过理解其核心组件和API,我们可以方便地创建和管理各种定时任务,以满足各种业务需求。在这个简单的示例中,我们看到了如何每...
【C# Quartz.Net定时任务操作】Quartz.Net是一款强大的任务调度框架,广泛应用于C#环境下的定时任务管理。本文将详细介绍如何使用Quartz.Net进行定时任务的配置与执行。 首先,**通过Nuget安装框架**非常简单,只需...
在Java中,有多种实现定时任务调度的方式,包括但不限于Java内置的`java.util.Timer`类、Spring框架的`@Scheduled`注解以及Quartz库。 1. **Java内置的`java.util.Timer`和`TimerTask`**: - `Timer`类用于创建一...
Quartz定时任务图形界面系统是一种基于Java开发的高级任务调度平台,它允许开发者安排和管理应用程序中的各种任务执行。在本系统中,Quartz与其他流行的技术框架如SpringMVC、MyBatis、Thymeleaf和Bootstrap3进行了...