Quartz开发文档
AI-摘要
切换
KunKun GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
一、单实例方式
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
定义核心业务Job
只需要继承QuartzJobBean,并重载executeInternal方法即可定义自己的Job执行逻辑。
@Slf4j
public class HelloJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
// 获取参数
context.getJobDetail().getJobDataMap().forEach(
(k, v) -> log.info("param, key:{}, value:{}", k, v)
);
// 核心业务
log.info("Hello Job执行时间: " + new Date());
}
}
编写配置类
JobDetail, Trigger, Schedule(这里采用CronScheduleBuilder)。
@Configuration // 使用@Configuration注解来标识这是一个配置类
public class QuartzConfig {
@Bean("helloJob") // 使用@Bean注解来创建和注册一个JobDetail对象,名称为helloJob
public JobDetail helloJobDetail() {
return JobBuilder.newJob(HelloJob.class) // 使用JobBuilder类来构建一个JobDetail对象,指定任务的类名为HelloJob.class
.withIdentity("DateTimeJob") // 指定任务的标识为DateTimeJob
.usingJobData("msg", "Hello Quartz") // 指定任务的参数为msg=Hello Quartz
.storeDurably()// 即使没有Trigger关联时,也不需要删除该JobDetail
.build(); // 构建并返回该对象
}
@Bean // 使用@Bean注解来创建和注册一个Trigger对象
public Trigger printTimeJobTrigger() {
// 使用CronScheduleBuilder类来定义一个Cron表达式,表示每秒执行一次
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/1 * * * * ?");
return TriggerBuilder.newTrigger() // 使用TriggerBuilder类来构建一个Trigger对象
.forJob(helloJobDetail()) // 指定触发器关联的任务为上面创建的helloJobDetail()方法返回的对象
.withIdentity("quartzTaskService") // 指定触发器的标识为quartzTaskService
.withSchedule(cronScheduleBuilder) // 指定触发器的时间表为上面定义的Cron表达式
.build(); // 构建并返回该对象
}
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Gavana
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果