Вы можете применить @ConditionalOnProperty
к методам, а также к типам, но похоже, что это относится только к методам, регистрирующим Бины (см. Документацию @Conditional
).
Вы должны создать отдельные Бины, где вы можете управлять регистрацией с помощью @ConditionalOnProperty, а затем применить аннотацию @Scheduled
к методу внутри Бина.
Пример:
@Slf4j
@Service
@ConditionalOnProperty(prefix = "schedule", name = {"job.one"}, havingValue = "true")
public class JobOneScheduler {
@Scheduled(cron = "*/2 * * * * *")
public void runJob() {
log.debug( "Running job one... {}", LocalDateTime.now() );
}
}
@Slf4j
@Service
@ConditionalOnProperty(prefix = "schedule", name = {"job.two"}, havingValue = "true")
public class JobTwoScheduler {
@Scheduled(cron = "*/5 * * * * *")
public void runJob() {
log.debug( "Running job two... {}", LocalDateTime.now() );
}
}
application.properties:
schedule.job.one=true
schedule.job.two=false