Quartz企业开发快速入门(springboot场景启动器)

文章介绍了Quartz框架中的核心概念,包括作为调度中心的Scheduler,定义业务逻辑的Job,详细封装的JobDetail,以及控制触发机制的Trigger。此外,讨论了Quartz如何与数据库整合,以及对定时任务的增删改查操作,如启用、禁用、新增和修改任务的步骤。
摘要由CSDN通过智能技术生成

Quartz中核心概念

Scheduled:调度器,所有的调度都是由他控制的,是Quartz的大脑,所有任务都是由他来进行管理

Job:任务,想定时、定期执行的事情(定义业务逻辑)

JobDetail:基于Job,进一步的封装。其中关联一个Job,并未Job指定更为详细的属性,比如标识等。

Trigger:触发器,可以指定给某个任务,指定任务的触发机制。

Quartz整合数据库(调度器直接Autowired注入就行了 Scheduler)

表设计(忽略审计字段)

id   主键

job_class  任务类全类名

job_name 定时任务名称(英文)

job_group  定时任务所属组 (英文)

job_text  任务信息(放入JobDataMap中,通过JobExecutionContext.getMergedJobDataMap()去进行获取)

cron_expression (cron表达式)

enable  (是否启用)

查询:查询Quartz表中所有数据

删除:逻辑删除数据库中定时任务记录,暂停定时任务scheduler,pauseTrigger(new TriggerKey(jobName, jobGroup)),移除触发器中任务scheduler.unscheduleJob(new TriggerKey(jobName, jobGroup)),调度器中删除此任务 scheduler.deleteJob(new JobKey(jobName, jobGroup))

新增:创建对应entity实体对象,查找对应任务名称和组名数据库中是否已经存在,不存在则进行插入

修改:参考上面改动下即可

开启任务:

JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(jobClass))
                    .withIdentity(jobName, jobGroup)
                    .usingJobData("data", jobText)
                    .build();

//创建一次性及时触发器用于程序启动后的初始化,只执行一次
 trigger = TriggerBuilder.newTrigger()
                        //开始时间为当前时间
                        .startNow()
                        .withIdentity("init" + jobName, jobGroup)
                        .build();

//创建触发器,执行任务执行时间
trigger = TriggerBuilder.newTrigger()
                        //开始时间为当前时间
                        .withIdentity("cron" + jobName, jobGroup)
                        .withSchedule(CronScheduleBuilder.cronSchedule(cron))
                        .forJob(jobDetail)
                        .build();

//使用任务调度器进行任务调度
 scheduler.scheduleJob(jobDetail, trigger);
  scheduler.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值