Java任务调度框架Quartz
来源:互联网 发布:软件下载网址大全 编辑:程序博客网 时间:2024/05/01 21:59
最近的项目中应用到了Quartz框架,用下来觉得此框架非常的强大,无论是应用在桌面应用程序或者web程序中,都能够解决一些比较棘手的问题。例如在报表统计中,实时查询在大数据量的情况下速度慢的令人发指,单纯从SQL语句上进行优化仍然无法达到要求,这时候可以考虑设计日报表或者月报表,在凌晨进行统计,这时候就可以用Quartz框架进行此工作。(其实也可以在数据库中应用job做同样的工作,在此不讨论)。
Quartz中主要有4个概念:调度器、任务、任务细节和触发器
Scheduler(调度器)是Quartz框架的核心,所有的任务计划都由调度器来进行最终控制,一般来说一个程序中只需要一个调度器,一个调度器中可以管理多个计划任务,每一个计划任务在Quartz中被切分为任务细节+执行计划,我们需要执行的代码通常是放置在JobDetail(任务细节)中执行,而执行计划通常指的是Trigger(触发器),每一对JobDetail+Trigger构成一个完整的计划任务,由调度器来负责执行。
log4j-1.2.14.jar --log4j日志
slf4j-api-1.6.1.jar --slf4j api,可以让我们自由使用java自带log,以及log4j包
slf4j-log4j12-1.6.1.jar --slf4j整合log4j
log4j.xml --log4j日志配置文件
- Quartz一些基本概念
Quartz中主要有4个概念:调度器、任务、任务细节和触发器
Scheduler(调度器)是Quartz框架的核心,所有的任务计划都由调度器来进行最终控制,一般来说一个程序中只需要一个调度器,一个调度器中可以管理多个计划任务,每一个计划任务在Quartz中被切分为任务细节+执行计划,我们需要执行的代码通常是放置在JobDetail(任务细节)中执行,而执行计划通常指的是Trigger(触发器),每一对JobDetail+Trigger构成一个完整的计划任务,由调度器来负责执行。
- Quartz使用
我使用的版本是2.0.2,要使用Quartz至少应该包括以下的Jar包和配置文件
log4j-1.2.14.jar --log4j日志
slf4j-api-1.6.1.jar --slf4j api,可以让我们自由使用java自带log,以及log4j包
slf4j-log4j12-1.6.1.jar --slf4j整合log4j
log4j.xml --log4j日志配置文件
quartz.properties --quartz配置文件
上代码:
- package quartz;
- import static org.quartz.CronScheduleBuilder.cronSchedule;
- import static org.quartz.JobBuilder.newJob;
- import static org.quartz.TriggerBuilder.newTrigger;
- import java.text.ParseException;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.Trigger;
- import org.quartz.impl.StdSchedulerFactory;
- public class QuartzDemo {
- public static void main(String[] args) throws SchedulerException {
- StdSchedulerFactory factory = new StdSchedulerFactory();
- Scheduler scheduler = factory.getScheduler();
- JobDetail job = newJob(MyJob.class)
- .withIdentity("job1", Scheduler.DEFAULT_GROUP).build();
- try {
- Trigger trigger = newTrigger()
- .withIdentity("trigger1", Scheduler.DEFAULT_GROUP)
- .withSchedule(cronSchedule("* * * * * ?")).build();
- scheduler.scheduleJob(job, trigger);
- } catch (ParseException e) {
- e.printStackTrace();
- } catch (SchedulerException e) {
- e.printStackTrace();
- }
- scheduler.start();
- }
- }
- package quartz;
- import java.util.Date;
- import org.apache.log4j.Logger;
- import org.quartz.Job;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- public class MyJob implements Job{
- Logger logger = Logger.getLogger(MyJob.class);
- @Override
- public void execute(JobExecutionContext arg0) throws JobExecutionException {
- logger.error(arg0.getJobDetail().getKey() +"调用计划任务在:" + new Date());
- }
- }
0 0
- Java任务调度框架Quartz
- Java任务调度框架Quartz
- Java任务调度框架Quartz
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz(1)
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java任务调度框架Quartz教程实例
- Java 任务调度框架 Quartz《一》
- Java任务调度框架Quartz教程实例
- 任务调度 Quartz框架
- 任务调度框架Quartz
- Quartz任务调度框架
- 任务调度框架Quartz
- Matlab 7.1安装及打不开问题解决
- 4 PHP 变量作用域
- Linux下C++文件系统编程
- PB数据窗口控件之属性
- Netstat命令详解
- Java任务调度框架Quartz
- Linux下C++编程库简介
- PAT_1003
- 没有基础,能学PHP开发吗?
- C++预处理程序
- C++异常以及错误处理
- PB数据窗口控件之事件
- C++标准库-输入/输出流
- C++标准库-字符串string类