SpringBoot+quartz整合多任务

单任务请看上一篇
https://blog.csdn.net/baxxdwyp/article/details/102622981

在上一篇的基础上,增加一个任务
额外加一个任务和Config
在这里插入图片描述

MysqlJob

public class MysqlJob implements Job {
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("mysql_job执行中");
    }
}

RedisJob

public class RedisJob implements Job {
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("redis_job执行中");
    }
}

QuartzMysqlConfig

@Configuration
public class QuartzMysqlConfig
{
    /**
     * 创建Job
     * @return
     */
    @Bean(name = "jobMysql")
    public JobDetailFactoryBean jobMysql()
    {
        JobDetailFactoryBean factory = new JobDetailFactoryBean();
        //关联自己的job
        factory.setJobClass(MysqlJob.class);
        return factory;
    }

    /**
     * 创建Trigger
     * @param jobMysql
     * @return
     */
    @Bean(name = "TriggerMysql")
    public CronTriggerFactoryBean cronTriggerMysql(@Qualifier("jobMysql") JobDetailFactoryBean jobMysql)
    {
        CronTriggerFactoryBean factory = new CronTriggerFactoryBean();
        factory.setJobDetail(jobMysql.getObject());
        factory.setCronExpression("0/10 * * * * ?");
        return factory;
    }

    /**
     * 创建Scheduler对象
     * @param cronTriggerMysql
     * @param jobFactory
     * @return
     */
    @Bean
    public SchedulerFactoryBean schedulerMysql(@Qualifier("TriggerMysql")CronTriggerFactoryBean cronTriggerMysql, JobFactory jobFactory)
    {
        SchedulerFactoryBean factory = new SchedulerFactoryBean();
        //关联trigger
        factory.setTriggers(cronTriggerMysql.getObject());
        factory.setJobFactory(jobFactory);
        return factory;
    }
}

QuartzRedisConfig

@Configuration
public class QuartzRedisConfig
{
    @Bean(name = "JobRedis")
    public JobDetailFactoryBean jobRedis()
    {
        JobDetailFactoryBean factory = new JobDetailFactoryBean();
        //关联自己的job
        factory.setJobClass(RedisJob.class);
        return factory;
    }
    @Bean(name = "TriggerRedis")
    public CronTriggerFactoryBean cronTriggerRedis(@Qualifier("JobRedis") JobDetailFactoryBean jobRedis)
    {
        CronTriggerFactoryBean factory = new CronTriggerFactoryBean();
        factory.setJobDetail(jobRedis.getObject());
        factory.setCronExpression("0/10 * * * * ?");
        return factory;
    }
    @Bean
    public SchedulerFactoryBean schedulerRedis(@Qualifier("TriggerRedis")CronTriggerFactoryBean cronTriggerRedis, JobFactory jobFactory)
    {
        SchedulerFactoryBean factory = new SchedulerFactoryBean();
        //关联trigger
        factory.setTriggers(cronTriggerRedis.getObject());
        factory.setJobFactory(jobFactory);
        return factory;
    }
}

然后启动进行测试
在这里插入图片描述
切记!!!!
job和trigger的bean加上名字,使用@Qualifier来明确,不然会报错!
要让代码知道你要执行的任务是那个,和使用trigger是那个,就可以了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值