Quartz-Hello World

Quartz简介

Quartz是一个开源的作业调度框架,可以让计划的程序任务一个预定义的日期和时间运行。Quartz可以用来创建简单或复杂的日程安排执行几十,几百,甚至是十万的作业数。

Quartz是什么?

作业调度库

Quartz 是一种功能丰富的,开放源码的作业调度库,可以在几乎任何Java应用程序集成 - 从最小的独立的应用程序到规模最大电子商务系统。Quartz可以用来创建简单或复杂的日程安排执行几十,几百,甚至是十万的作业数 - 作业被定义为标准的Java组件,可以执行几乎任何东西,可以编程让它们执行。 Quartz调度包括许多企业级功能,如JTA事务和集群支持。

Quartz可以用来做什么

如果应用程序需要在给定时间执行任务,或者如果系统有连续维护作业,那么Quartz是理想的解决方案。使用Quartz作业调度应用的示例:

  • 驱动处理工作流程:作为一个新的订单被初始化放置,调度作业到在正好两个小时内,它将检查订单的状态,如果订单确认消息尚未收到命令触发警告通知,以及改变订单的状态为“等待的干预”。
  • 系统维护:调度工作给数据库的内容,每个工作日(节假日除外平日)在11:30 PM转储到一个XML文件中。
  • 在应用程序内提供提醒服务。

Quartz第一个程序

依赖quartz程序每五秒在控制台打出Hello World,该程序使用的quartz的版本是2.2.1

package com.conjane.demo;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DatetimeHelper {
    static String format(Date date,String pattern){
        DateFormat dateFormat = new SimpleDateFormat(pattern);
        String dateTime = dateFormat.format(date);
        return dateTime;
    }
}
package com.conjane.demo;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import java.util.Date;

public class HelloWorldJob implements Job{
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("当前时间是--" + DatetimeHelper.format(new Date(),"yyyy-MM-dd hh:mm:ss"));
        System.out.println("Hello World");
    }
}

package com.conjane.demo;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class HelloWorldScheduler {
    public static void main(String[] args) throws SchedulerException {
        JobDetail jobDetail = JobBuilder.newJob(HelloWorldJob.class)
                                        .withIdentity("HelloWorldJob", "HelloWorldGroup")
                                        .build();
        Trigger trigger = TriggerBuilder.newTrigger()
                                        .withIdentity("HelloWorldTrigger", "HelloWorldGroup")
                                        .startNow()
                                        .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever())
                                        .build();
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        scheduler.start();
        scheduler.scheduleJob(jobDetail,trigger);
    }
}

程序输出


当前时间是--2017-12-01 10:21:49
Hello World
当前时间是--2017-12-01 10:21:54
Hello World
当前时间是--2017-12-01 10:21:59
Hello World
当前时间是--2017-12-01 10:22:04
Hello World
当前时间是--2017-12-01 10:22:09
Hello World
当前时间是--2017-12-01 10:22:14
Hello World

猜你喜欢

转载自blog.csdn.net/u010871004/article/details/78691757