第一个Quartz程序 (二)

简介: 1 我们使用maven项目 2 创建一个job类,在execute()方法里写上业务逻辑代码。 3 在另外一个类中创建触发器,调度器,并且绑定job。   首先在项目的pom.xml引入需要的jar包。

1 我们使用maven项目

2 创建一个job类,在execute()方法里写上业务逻辑代码。

3 在另外一个类中创建触发器,调度器,并且绑定job。

 

首先在项目的pom.xml引入需要的jar包。

     <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>  

创建一个job

package quartz;

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

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

public class JobClass implements Job {

    public void execute(JobExecutionContext arg0) throws JobExecutionException {
        Date date=new Date();
        SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("当前时间为:"+sf.format(date));
        // 编写业务逻辑
        System.out.println("hello Quartz");
    }

}

 再创建另外一个类

package quartz;

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

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class SchedulerClass {
    
    public static void main(String[] args) throws SchedulerException {
        // 创建一个JobDetail实例 将该实例与JobClass绑定,JobDetail是由Builder模式来创建的,JobDetail是来绑定job的。
        // withIdentity 创建唯一的标识
        JobDetail jobDetail = JobBuilder.newJob(JobClass.class).withIdentity("job").build();
        
        // 创建一个Tigger实例,定义 job立即执行,并每隔一段时间重复执行,每隔5秒中执行一次
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger").startNow()
                .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build();
        
        // 创建一个Scheduler实例, Scheduler是由工厂模式来创建的 so
        SchedulerFactory factory = new StdSchedulerFactory();
        Scheduler scheduler = factory.getScheduler();
        scheduler.start();

        Date date = new Date();
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("当前时间为:" + sf.format(date));
        //调度器调用任务和触发器,scheduler将job,trigger绑定在一起。
        scheduler.scheduleJob(jobDetail, trigger);
        
        
        

    }
}

但是这样看起来很复杂的!

相关文章
|
3月前
|
存储 Java API
Quartz表达式:定时任务调度的高级配置与应用
Quartz表达式:定时任务调度的高级配置与应用
|
4月前
|
Java Maven Spring
第一个Spring程序(代码篇)
第一个Spring程序(代码篇)
27 1
|
3月前
|
Java 调度 开发者
定义和使用Quartz调度表达式
定义和使用Quartz调度表达式
|
5月前
|
Java Linux 调度
Java【付诸实践 03】Spring定时任务注解@Scheduled+@EnableAsync用法详解(简单说明+应用场景+demo源代码+执行过程分析)
Java【付诸实践 03】Spring定时任务注解@Scheduled+@EnableAsync用法详解(简单说明+应用场景+demo源代码+执行过程分析)
113 2
|
XML 存储 Java
Quartz-JobDataMap 参数传递
Quartz-JobDataMap 参数传递
267 0
|
Java Maven
02.第一个Springboot程序
02.第一个Springboot程序
|
XML 小程序 Java
创建第一个Servlet程序
创建第一个Servlet程序
106 0
创建第一个Servlet程序
|
XML 缓存 Java
通过源码理解Spring中@Scheduled的实现原理并且实现调度任务动态装载(上)
最近的新项目和数据同步相关,有定时调度的需求。之前一直有使用过Quartz、XXL-Job、Easy Scheduler等调度框架,后来越发觉得这些框架太重量级了,于是想到了Spring内置的Scheduling模块。而原生的Scheduling模块只是内存态的调度模块,不支持任务的持久化或者配置(配置任务通过@Scheduled注解进行硬编码,不能抽离到类之外),因此考虑理解Scheduling模块的底层原理,并且基于此造一个简单的轮子,使之支持调度任务配置:通过配置文件或者JDBC数据源。
510 1
通过源码理解Spring中@Scheduled的实现原理并且实现调度任务动态装载(上)
|
存储 Java 调度
这种方式整合Quartz你见过吗?
`Quartz`是一款优秀的任务调度框架,支持内存、JDBC的形式来存储未执行的任务列表,支持多个任务节点同时执行任务,支持任务漂移到不同的节点执行。
|
XML JSON 监控
通过源码理解Spring中@Scheduled的实现原理并且实现调度任务动态装载(下)
最近的新项目和数据同步相关,有定时调度的需求。之前一直有使用过Quartz、XXL-Job、Easy Scheduler等调度框架,后来越发觉得这些框架太重量级了,于是想到了Spring内置的Scheduling模块。而原生的Scheduling模块只是内存态的调度模块,不支持任务的持久化或者配置(配置任务通过@Scheduled注解进行硬编码,不能抽离到类之外),因此考虑理解Scheduling模块的底层原理,并且基于此造一个简单的轮子,使之支持调度任务配置:通过配置文件或者JDBC数据源。
305 1