前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >quartz入门(一)下载及简单实例

quartz入门(一)下载及简单实例

作者头像
程序新视界
发布2022-11-30 16:06:52
3370
发布2022-11-30 16:06:52
举报
文章被收录于专栏:丑胖侠丑胖侠

下载

官网下载地址:http://www.quartz-scheduler.org/ 下载步骤: 1、点击橘黄色的download连接。

这里写图片描述
这里写图片描述

2、点击Direct Download下面的Quartz 2.2.1 full distribution (release notes)

这里写图片描述
这里写图片描述

3、点击quartz-2.2.1-distribution.tar.gz进行下载,选择两个中的任何一个即可。

这里写图片描述
这里写图片描述

4、Maven项目引入

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.1</version>
</dependency>

example1

此实例为官方文档中提供的第一个实例,针对此实例,通过注解的形式进行一一说明。目前quartz使用版本为2.2.1。 1、定义任务处理类HelloJob实现Job接口

package com.secbro.job;

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

import java.util.Date;

/**
 * 实现Job接口,定义具体运行的任务
 */
public class HelloJob implements Job{

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        //此处执行的任务就是打印出当前的时间
        System.out.println("Hello World! - " + new Date());
    }
}

2、执行任务的处理类

package com.secbro.test;

import com.secbro.job.HelloJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

import java.util.Date;

/**
 * 执行任务的客户端
 */
public class SimpleExample {
    /**
     * 定义构造方法
     */
    public SimpleExample() {
    }

    public void run() throws SchedulerException {
        // 日志打印,为方便起见,此出替换为控制台打印
        System.out.println("------- Initializing ----------------------");

        // 通过SchedulerFactory获取一个调度器实例
        StdSchedulerFactory sf = new StdSchedulerFactory();
        // 代表一个Quartz的独立运行容器
        Scheduler scheduler = sf.getScheduler();
        System.out.println("------- Initialization Complete -----------");

        // 将返回某一时间点一分钟以后的时间
        Date runtime = DateBuilder.evenMinuteDate(new Date());
        System.out.println("------- Scheduling Job  -------------------");
        // 创建一个JobDetail实例,此版本JobDetail已经作为接口(interface)存在,通过JobBuilder创建
        JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1","group1").build();
        // 定义调度规则接口
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1").startAt(runtime).build();

        // 添加JobDetail到Scheduler容器中,并且和Trigger进行关联
        scheduler.scheduleJob(jobDetail,trigger);
        System.out.println(jobDetail.getKey() + " will run at: " + runtime);

        scheduler.start();

        System.out.println("------- Started Scheduler -----------------");
        System.out.println("------- Waiting 65 seconds... -------------");

        try {
            Thread.sleep(65000L);
        } catch (Exception var8) {
            ;
        }

        System.out.println("------- Shutting Down ---------------------");
        scheduler.shutdown(true);
        System.out.println("------- Shutdown Complete -----------------");
    }

    public static void main(String[] args) throws Exception {
        SimpleExample example = new SimpleExample();
        example.run();
    }

}

3、执行之后,打印结果如下

------- Initializing ----------------------
------- Initialization Complete -----------
------- Scheduling Job  -------------------
group1.job1 will run at: Fri Jun 12 16:37:00 CST 2015
------- Started Scheduler -----------------
------- Waiting 65 seconds... -------------
Hello World! - Fri Jun 12 16:37:00 CST 2015
------- Shutting Down ---------------------
------- Shutdown Complete -----------------

Process finished with exit code 0

其中一下内容为HelloJob定时任务打印信息。

Hello World! - Fri Jun 12 16:37:00 CST 2015

至此,Quartz的下载及简单实例已经完成。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载
  • example1
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档