package com.iplatform.scheduler.config; import com.iplatform.core.PlatformConfiguration; import com.iplatform.scheduler.DatabaseSchedulerManager; import com.iplatform.scheduler.service.SchedulerServiceImpl; import com.iplatform.scheduler.support.DatabaseScheduleEngine; import com.walker.jdbc.JdbcInspector; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @ConditionalOnClass({JdbcInspector.class}) @ConditionalOnProperty(prefix = "iplatform.scheduler", name = "enabled", havingValue = "true", matchIfMissing = false) public class DatabaseSchedulerConfig extends PlatformConfiguration { @Bean public SchedulerManagerProperties schedulerManagerProperties(){ return new SchedulerManagerProperties(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //~ 初始化基于数据库的实现对象。2022-09-08 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @Bean // @ConditionalOnProperty(prefix = "iplatform.scheduler", name = "database-enabled", havingValue = "true", matchIfMissing = false) public DatabaseScheduleEngine databaseScheduleEngine(SchedulerServiceImpl schedulerService){ DatabaseScheduleEngine scheduleEngine = new DatabaseScheduleEngine(); scheduleEngine.setSchedulerService(schedulerService); return scheduleEngine; } @Bean // @ConditionalOnProperty(prefix = "iplatform.scheduler", name = "database-enabled", havingValue = "true", matchIfMissing = false) public DatabaseSchedulerManager databaseSchedulerManager(DatabaseScheduleEngine scheduleEngine , SchedulerServiceImpl schedulerService){ DatabaseSchedulerManager schedulerManager = new DatabaseSchedulerManager(); schedulerManager.setSchedulerService(schedulerService); schedulerManager.setScheduleEngine((DatabaseScheduleEngine) scheduleEngine); logger.info("创建了 DatabaseSchedulerManager, scheduleEngine=" + scheduleEngine.getClass().getName()); schedulerManager.startup(); return schedulerManager; } }