- 浏览: 102995 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (28)
- 编程 (8)
- 知识收集 (8)
- 主机维护 (2)
- 数据库 (9)
- 项目管理 (0)
- SSO单点登录解决方案 (0)
- 知识收集-查询表空间 (0)
- xmanager 3.0 与linux 5.2 远程登陆 (0)
- 知识收集 OpenSSH for Windows 配置 (1)
- 架构知识 (0)
- 设计模式 (1)
- 云计算 (0)
- 系统集成工具 (0)
- Nginx配置详解 (0)
- Nginx代理功能与负载均衡详解 (0)
- NLB网路负载均衡管理器详解 (0)
- Quartz.net持久化与集群部署开发详解 (0)
- Spring与Quartz的整合实现定时任务调度 (1)
- 定时调度 (0)
- log4j日志 (0)
最新评论
1、把quartz-*.jar 包放到lib目录下,他还需要 slf4j-api-*.jar 、 jta-*.jar
2.web.xml
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>config-file</param-name>
<param-value>quartz.properties</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
或者
<servlet>
3、在src目录下建立 quartz.properties
<1>直接连接数据库
#============================================================
# Configure Main Scheduler Properties
#===========================================================
org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
#===========================================================
# Configure ThreadPool
#===========================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.threadPriority = 5
#===========================================================
# Configure JobStore
#===========================================================
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
#===========================================================
# Configure Datasources
#===========================================================
org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@ip:1521:dbname
org.quartz.dataSource.myDS.user = QRTZ
org.quartz.dataSource.myDS.password = pwd
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery=select 0 from dual
<2>使用jndi<NewBMQrtz>连接数据库
#============================================================
# Configure Main Scheduler Properties
#===========================================================
org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
#===========================================================
# Configure ThreadPool
#===========================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.threadPriority = 5
#===========================================================
# Configure JobStore
#===========================================================
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
#===========================================================
# Configure Datasources
#===========================================================
org.quartz.dataSource.myDS.jndiURL = NewBMQrtz
4、在src目录下建立quartz_job.xml
其中的 <job-class> 是自己定义的实现org.quartz.Job接口,有一个空的构造函数的类
【管理使用】
import java.text.ParseException;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
/** *//**
* @Title:Quartz管理类
*
* @Description:
*
* @Copyright:
* @author zz 2008-10-8 14:19:01
* @version 1.00.000
*
*/
public class QuartzManager {
private static SchedulerFactory sf = new StdSchedulerFactory();
private static String JOB_GROUP_NAME = "group1";
private static String TRIGGER_GROUP_NAME = "trigger1";
/** *//**
* 添加一个定时任务,使用默认的任务组名,触发器名,触发器组名
* @param jobName 任务名
* @param job 任务
* @param time 时间设置,参考quartz说明文档
* @throws SchedulerException
* @throws ParseException
*/
public static void addJob(String jobName,Job job,String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, job.getClass());//任务名,任务组,任务执行类
//触发器
CronTrigger trigger =
new CronTrigger(jobName, TRIGGER_GROUP_NAME);//触发器名,触发器组
trigger.setCronExpression(time);//触发器时间设定
sched.scheduleJob(jobDetail,trigger);
//启动
if(!sched.isShutdown())
sched.start();
}
/** *//**
* 添加一个定时任务
* @param jobName 任务名
* @param jobGroupName 任务组名
* @param triggerName 触发器名
* @param triggerGroupName 触发器组名
* @param job 任务
* @param time 时间设置,参考quartz说明文档
* @throws SchedulerException
* @throws ParseException
*/
public static void addJob(String jobName,String jobGroupName,
String triggerName,String triggerGroupName,
Job job,String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, jobGroupName, job.getClass());//任务名,任务组,任务执行类
//触发器
CronTrigger trigger =
new CronTrigger(triggerName, triggerGroupName);//触发器名,触发器组
trigger.setCronExpression(time);//触发器时间设定
sched.scheduleJob(jobDetail,trigger);
if(!sched.isShutdown())
sched.start();
}
/** *//**
* 修改一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)
* @param jobName
* @param time
* @throws SchedulerException
* @throws ParseException
*/
public static void modifyJobTime(String jobName,String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
Trigger trigger = sched.getTrigger(jobName,TRIGGER_GROUP_NAME);
if(trigger != null){
CronTrigger ct = (CronTrigger)trigger;
ct.setCronExpression(time);
sched.resumeTrigger(jobName,TRIGGER_GROUP_NAME);
}
}
/** *//**
* 修改一个任务的触发时间
* @param triggerName
* @param triggerGroupName
* @param time
* @throws SchedulerException
* @throws ParseException
*/
public static void modifyJobTime(String triggerName,String triggerGroupName,
String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
Trigger trigger = sched.getTrigger(triggerName,triggerGroupName);
if(trigger != null){
CronTrigger ct = (CronTrigger)trigger;
//修改时间
ct.setCronExpression(time);
//重启触发器
sched.resumeTrigger(triggerName,triggerGroupName);
}
}
/** *//**
* 移除一个任务(使用默认的任务组名,触发器名,触发器组名)
* @param jobName
* @throws SchedulerException
*/
public static void removeJob(String jobName)
throws SchedulerException{
Scheduler sched = sf.getScheduler();
sched.pauseTrigger(jobName,TRIGGER_GROUP_NAME);//停止触发器
sched.unscheduleJob(jobName,TRIGGER_GROUP_NAME);//移除触发器
sched.deleteJob(jobName,JOB_GROUP_NAME);//删除任务
}
/** *//**
* 移除一个任务
* @param jobName
* @param jobGroupName
* @param triggerName
* @param triggerGroupName
* @throws SchedulerException
*/
public static void removeJob(String jobName,String jobGroupName,
String triggerName,String triggerGroupName)
throws SchedulerException{
Scheduler sched = sf.getScheduler();
sched.pauseTrigger(triggerName,triggerGroupName);//停止触发器
sched.unscheduleJob(triggerName,triggerGroupName);//移除触发器
sched.deleteJob(jobName,jobGroupName);//删除任务
}
}
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class TestMGJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("★★★★★★★★★★★");
}
}
public class QuartzTest {
/** *//**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TestMGJob job = new TestMGJob();
QuartzManager qmg = new QuartzManager();
String job_name ="TEST1";
try {
System.out.println("【系统启动】");
qmg .addJob(job_name,job,"0/5 * * * * ?");
Thread.sleep(10000);
System.out.println("【修改时间】");
qmg .modifyJobTime(job_name,"0/10 * * * * ?");
Thread.sleep(20000);
System.out.println("【移除定时】");
qmg .removeJob(job_name);
Thread.sleep(10000);
System.out.println("\n【添加定时任务】");
qmg .addJob(job_name,job,"0/5 * * * * ?");
} catch (Exception e) {
e.printStackTrace();
}
}
}
发表评论
-
sentinel 配置
2017-04-24 14:50 0redis_test1 redis_test2 redi ... -
定时调度器ssh框架下的timertask
2015-07-10 14:12 727applicationContext.xml: & ... -
面向对象的五大基本原则
2014-06-25 16:26 0面向对象的五大基本 ... -
Java中的事务处理
2012-06-01 15:28 978Java中的事务处理 ... -
js正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
2012-06-01 15:27 43581. var reg = /^(\w|[\u4E0 ... -
SSO单点登录解决方案
2012-05-28 13:41 01 什么是单点登陆 单点 ... -
Hook过滤架构搭建,仿照360(转)
2011-03-09 23:27 3137http://bbs.pediy.com/archive/in ... -
webService接口的开发实例
2011-03-04 21:52 29361webService接口的开发实例 ... -
应用poi导出excel的基本action操作
2011-03-03 16:24 2550实体bean(SingleMonthData[set/get] ... -
oracle 数据操作
2011-03-03 09:27 7471、CREATE TABLESPACE name DATAF ...
相关推荐
Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息...
首先,让我们了解Spring Boot与Quartz的集成基础。要在Spring Boot项目中引入Quartz,我们需要在`pom.xml`或`build.gradle`文件中添加相应的依赖。对于Maven,你可以添加以下依赖: ```xml <groupId>org.spring...
Quartz2D是苹果平台上的一个强大的2D图形渲染框架,它被广泛应用于iOS和macOS应用程序开发中,用于创建高质量的图形、图像处理...这些案例涵盖了基础到高级的Quartz2D使用场景,对于提升iOS和macOS开发技能非常有帮助。
强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求; 灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度...分布式和集群能力,Terracotta 收购后在原来功能基础上作了进一步提升。
在 Web 应用中使用 Quartz,通常需要在 `web.xml` 文件中配置 `QuartzInitializerServlet`,并提供配置文件(如 `quartz.properties` 或 `quartz-job.xml`)来定义 Triggers 和 JobDetails。 通过以上描述,我们...
### Quartz使用例子详解 在Java领域,Quartz是一个强大的任务调度框架,被广泛应用于各种应用场景中,例如...通过本文的解析,读者应该能够掌握Quartz的核心概念和实践方法,为进一步探索和应用Quartz奠定坚实的基础。
- `quartz-all-1.6.0.jar`包含所有必要的依赖,使得开发者可以直接引入此单一jar包来使用Quartz。 - 此版本可能不包含一些高级特性,如集群支持或更完善的API。 2. **Quartz 1.8.5**: - 作为1.x系列的一个更新...
1. CGContext:Quartz2D的核心是图形上下文(CGContext),它是绘制的基础。CGContext负责管理绘图的状态,如颜色、线宽、填充模式等,并接收绘制命令,将它们转换为屏幕上的像素。 2. 矢量图形:Quartz2D支持矢量...
在提供的文件中,“quartz的入门.doc”可能是Quartz的基础教程,介绍如何创建和调度Job;“spring的quartz应用.txt”可能包含Spring-Quartz的具体使用示例和注意事项;“spring-quartz-demo”可能是一个完整的示例...
Spring Boot与Quartz的集成使得我们可以方便地在Spring应用中使用定时任务功能。Spring Boot提供了自动配置,简化了Quartz的设置。 在Spring Boot 2.3中集成Quartz,你需要先添加依赖。在`pom.xml`文件中,引入以下...
Quartz Scheduler 自有集群特性,在数据库持久保存的基础上。Terracotta 对 Quartz 的扩展,实现了一个集群能力,不需要终端数据库的支持。 监听器和组件 监听器和组件可以捕捉到调度器的事件。然后就可以显示或者...
以下将详细介绍如何在Spring Boot应用中使用YAML文件配置Quartz定时任务,以及涉及的Spring Cloud Alibaba、Dubbo和Nacos的相关知识。 首先,我们需要在`pom.xml`中引入相关的依赖。Spring Boot的`spring-boot-...
在这个基础的Quartz定时器案例中,我们将探讨如何使用Quartz API来创建、配置和执行定时任务。 首先,Quartz的核心组件包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际需要执行的任务,...
总的来说,这个压缩包提供了开发基于Quartz的定时任务系统所需的全部基础。无论是简单还是复杂的调度需求,Quartz都能提供强大的支持。通过理解Quartz的核心概念和API,开发者可以构建出高效、可靠的自动化工作流,...
Quartz2D的基础绘画涉及到以下几个核心概念和技术: 1. **图形上下文(Graphics Context)**:在Quartz2D中,所有绘图操作都发生在图形上下文中。图形上下文就像一个画布,你可以在这个画布上绘制线条、形状、图片...
- 实现`org.quartz.Job`接口是创建一个Job的基础。该接口中包含一个名为`execute`的方法,用于定义实际的任务逻辑。 - 示例代码: ```java public class MyJob implements Job { @Override public void ...
"Quartz入门与提高1.ppt"可能是一个幻灯片教程,涵盖了从基础到进阶的Quartz使用。"定时任务Test.rar"可能包含了一些测试用例或示例代码,有助于理解实际应用场景。"网站地址.txt"可能提供了更多资源链接,而"quartz...
综上所述,这个基础框架集合了Spring Boot的便利性、MyBatis的灵活性、Shiro的安全管理、代码生成器的自动化、Quartz的定时任务调度以及Thymeleaf的模板渲染,为开发人员提供了一个全方位的工具链,使得企业级应用的...
总之,正确地在各种数据库上设置Quartz的表结构是确保任务调度系统正常运行的基础。请务必仔细阅读官方文档,以获取最新的建表语句和配置指南,因为随着Quartz版本的更新,这些信息可能会有所变化。同时,不要忘记在...
`QRTZ_JOB_DETAILS`, `QRTZ_CALENDARS`, `QRTZ_CRON_TRIGGERS`, `QRTZ_SIMPLE_TRIGGERS`, `QRTZ_SIMPROP_TRIGGERS`, `QRTZ_BLOB_TRIGGERS`, 和 `QRTZ_TRIGGER_LISTENERS` 等核心表,它们是Quartz调度系统的基础。...