- package com.power.demo.scheduledtask.quartz.config;
- import com.power.demo.common.AppField;
- import com.power.demo.scheduledtask.quartz.MailSendTask;
- import com.power.demo.scheduledtask.quartz.QuartzTaskA;
- import com.power.demo.scheduledtask.quartz.QuartzTaskB;
- import com.power.demo.util.ConfigUtil;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
- import org.springframework.scheduling.quartz.JobDetailFactoryBean;
- @Configuration
- public class TaskSetting {@Bean(name = "quartzTaskA")
- public JobDetailFactoryBean jobDetailAFactoryBean() {
- // 生成 JobDetail
- JobDetailFactoryBean factory = new JobDetailFactoryBean();
- factory.setJobClass(QuartzTaskA.class); // 设置对应的 Job
- factory.setGroup("quartzTaskGroup");
- factory.setName("quartzTaskAJob");
- factory.setDurability(false);
- factory.setDescription("测试任务 A");
- return factory;
- }
- @Bean(name = "quartzTaskATrigger")
- public CronTriggerFactoryBean cronTriggerAFactoryBean() {
- String cron = ConfigUtil.getConfigVal(AppField.JOB_TASKA_CRON);
- CronTriggerFactoryBean stFactory = new CronTriggerFactoryBean();
- // 设置 JobDetail
- stFactory.setJobDetail(jobDetailAFactoryBean().getObject());
- stFactory.setStartDelay(1000);
- stFactory.setName("quartzTaskATrigger");
- stFactory.setGroup("quartzTaskGroup");
- stFactory.setCronExpression(cron);
- return stFactory;
- }
- @Bean(name = "quartzTaskB")
- public JobDetailFactoryBean jobDetailBFactoryBean() {
- // 生成 JobDetail
- JobDetailFactoryBean factory = new JobDetailFactoryBean();
- factory.setJobClass(QuartzTaskB.class); // 设置对应的 Job
- factory.setGroup("quartzTaskGroup");
- factory.setName("quartzTaskBJob");
- factory.setDurability(false);
- factory.setDescription("测试任务 B");
- return factory;
- }
- @Bean(name = "quartzTaskBTrigger")
- public CronTriggerFactoryBean cronTriggerBFactoryBean() {
- String cron = ConfigUtil.getConfigVal(AppField.JOB_TASKB_CRON);
- CronTriggerFactoryBean stFactory = new CronTriggerFactoryBean();
- // 设置 JobDetail
- stFactory.setJobDetail(jobDetailBFactoryBean().getObject());
- stFactory.setStartDelay(1000);
- stFactory.setName("quartzTaskBTrigger");
- stFactory.setGroup("quartzTaskGroup");
- stFactory.setCronExpression(cron);
- return stFactory;
- }
- @Bean(name = "mailSendTask")
- public JobDetailFactoryBean jobDetailMailFactoryBean() {
- // 生成 JobDetail
- JobDetailFactoryBean factory = new JobDetailFactoryBean();
- factory.setJobClass(MailSendTask.class); // 设置对应的 Job
- factory.setGroup("quartzTaskGroup");
- factory.setName("mailSendTaskJob");
- factory.setDurability(false);
- factory.setDescription("邮件发送任务");
- return factory;
- }
- @Bean(name = "mailSendTrigger")
- public CronTriggerFactoryBean cronTriggerMailFactoryBean() {
- String cron = ConfigUtil.getConfigVal(AppField.JOB_TASKMAIL_CRON);
- CronTriggerFactoryBean stFactory = new CronTriggerFactoryBean();
- // 设置 JobDetail
- stFactory.setJobDetail(jobDetailMailFactoryBean().getObject());
- stFactory.setStartDelay(1000);
- stFactory.setName("mailSendTrigger");
- stFactory.setGroup("quartzTaskGroup");
- stFactory.setCronExpression(cron);
- return stFactory;
- }
- }
来源: https://www.cnblogs.com/jeffwongishandsome/p/spring-boot-integrate-task-schedule-practise.html