Quartz

Quartz是一个强大的定时任务调度框架,适用于设置触发时间规则并执行特定任务。本文介绍了如何导入依赖、定义Job、使用SimpleTrigger和CronTrigger,以及如何在Spring中整合Quartz进行任务操作。
摘要由CSDN通过智能技术生成

Quartz

一、引言

1.1 简介

Quartz:http://www.quartzscheduler.org/

是一个定时任务调度框架。比如你遇到这样的问题:

  • 想在30分钟后,查看订单是否支付,未支付则取消订单
  • 想在每月29号,信用卡自动还款
  • 想定时在某个时间,去做某件事(任务)。

Quartz是要做定时任务的调度,设置好触发时间规则,以及相应的任务(Job)即可。

二、Quartz使用

2.1 导入依赖

<dependencies>
	<!--Quartz任务调度-->
    <!--https://mvnrepository.com/artifact/org.quartz-scheduler/quartz-->
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.3</version>
    </dependency>
</dependencies>

2.2 定义Job

/**
 * 工作类的具体实现,即需要定时执行的"某件事"
 */
public class HelloQuartz implements Job{
   
    //执行
    public void execute(JobExecutionContext context) throws JobExecutionException {
   
        //创建工作详情
        JobDetail jobDetail = context.getJobDetail();
        //获取工作的名称
        String jobName = jobDetail.getKey().getName();//任务名
        String jobGroup = jobDetail.getKey().getGroup();//任务group
        System.out.println("job执行,job:"+jobName+"group:"+jobGroup);
        System.out.println(new Date());
    }
}

2.3 API测试

public static void main(String[] args) {
   
    try{
   
        //创建scheduler,调度器
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        //定义一个Trigger,触发条件类
        Trigger trigger = TriggerBuilder.newTrigger()
            	.withIdentity()
            	.startNow()//一旦加入scheduler,立即生效,即开始计时
            	.withSchedule(SimpleScheduleBuilder.simpleSchedule()
                             .withIntervalInSeconds(1)//每隔一秒执行一次
                             .repeatForever())//一直执行,知道结束时间
            	.endAt(new GregorianCalendar(2019,7,15,16,7,0).getTime())//设置结束时间
            	.build();
        //定义一个JobDetail
        //定义Job类为HelloQuartz类,这是真正的执行逻辑所在
        JobDetail job = JobBuilder.newJob(HelloQuartz.class)
            	.withIdentity("job1","group1")//定义name/group
            	.build();
        //调度器中加入任务和触发器
        scheduler.scheduleJob(job,trigger);
        //启动任务调度
        scheduler.start
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周景洛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值