我想通过外部配置文件禁用弹出调度。我有配置文件设置,下面示例中的任务注销以下内容。
INFO MainTaskScheduler:36 - scheduled task: Update converted bookings false.
所以我大部分都在这里。
我想要实现的是不必在每个任务方法中放置逻辑来确定是否已启用调度属性。
在我的配置文件中有这样的东西(这不是有效的代码)
@EnableScheduling(${enable.scheduling})
我的工作片段
AppConfiguration
@Configuration
@EnableTransactionManagement
@EnableScheduling
@ComponentScan( /*etc*/})
public class AppConfiguration {
}
MainTaskScheduler
@Component
public class MainTaskScheduler {
private Logger log = LoggerFactory.getLogger(getClass());
@Value("${enable.scheduling}")
private Boolean enableScheduling;
@Scheduled(fixedRate=300) // every 5 minutes -- check if any existing quotes have been converted to bookings
public void updateConvertedBookings() {
log.info("scheduled task: Update converted bookings "+enableScheduling);
// logic for class here
}
}
application.properties
enable.scheduling=false
答案 0 :(得分:2)
如果您使用的是春季启动,则可以使用@ConditionalOnExpression
注释启用或禁用计划:
@ConditionalOnExpression("'${enable.scheduling}'=='true'")