java quartz_job.xml_Quartz定时任务的使用和配置,全注解和xml

本文介绍了开源项目Quartz在Java开发中的应用,特别是在Spring框架中的集成使用。通过XML配置和注解方式展示了如何创建定时任务,如每10分钟执行一次的清理图片任务,并提供了详细的配置步骤和代码示例。此外,还提到了@EnableScheduling注解的使用来开启定时任务功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Quartz是Job scheduling(作业调度)领域的一个开源项目,Quartz既可以单独使用也可以跟spring框架整合使用,在实际开发中一般会使用后者。使用Quartz可以开发一个或者多个定时任务,每个定时任务可以单独指定执行的时间,例如每隔1小时执行一次、每个月第一天上午10点执行一次、每个月最后一天下午5点执行一次等。

maven坐标:

org.quartz-scheduler

quartz

2.2.1

org.quartz-scheduler

quartz-jobs

2.2.1

org.springframework

spring-context-support

5.0.5.RELEASE

xml配置

创建一个工作类

public classClearImageJob {/*** 定义清理图片的任务*/

public voidclearImageJob(){

System.out.println("clearImageJob......");

}

}

主要配置的内容有

配置自定义Job、任务描述、触发器、调度工厂等

自动扫包

注册任务对象

注册JobDetail

触发器

调度工厂

0/10 * * * * ?

全注解(1)对应xml配置写一一注入就ok

工作类

public classClearImageJob {/*** 定义清理图片的任务*/

public voidclearImagesJob(){

System.out.println("clearImageJob......");

}

}

@Configurationpublic classQuartzConfig {//

@BeanpublicClearImageJob clearImageJob() {

ClearImageJob clearImageJob= newClearImageJob();returnclearImageJob;

}//

@BeanpublicMethodInvokingJobDetailFactoryBean clearImgJobDetail(ClearImageJob clearImageJob) {

MethodInvokingJobDetailFactoryBean clearImgJobDetail= newMethodInvokingJobDetailFactoryBean();

clearImgJobDetail.setTargetObject(clearImageJob);

clearImgJobDetail.setTargetMethod("clearImagesJob");returnclearImgJobDetail;

}

@BeanpublicCronTriggerFactoryBean cronTriggerFactoryBean(MethodInvokingJobDetailFactoryBean clearImgJobDetail) {

CronTriggerFactoryBean cronTriggerFactoryBean= newCronTriggerFactoryBean();

cronTriggerFactoryBean.setJobDetail(clearImgJobDetail.getObject());////////0/10 * * * * ?

cronTriggerFactoryBean.setCronExpression("0/10 * * * * ?");returncronTriggerFactoryBean;

}

@BeanpublicSchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean){

SchedulerFactoryBean schedulerFactoryBean= newSchedulerFactoryBean();

schedulerFactoryBean.setTriggers(cronTriggerFactoryBean.getObject());returnschedulerFactoryBean;

}

}

按照xml顺序配置下来测试没问题。

全注解配置(2),推荐用法,非常简洁

首先有一个配置类

@Configuration

@EnableScheduling

@ComponentScan("cn.zys.quartzs")public classTestQAnnoConfig {

}

@EnableScheduling 开启定时任务功能

然后扫描定时任务所在包

使用定时任务

@Componentpublic classTestQAnno {//@Scheduled(cron = "*/5 * * * * SUN-MON")

@Scheduled(cron = "0/10 * * * * ?")public voidtest() {

System.out.println("计时任务....");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值