单任务请看上一篇
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是那个,就可以了!