Как условно включить или отключить запланированные задания весной?JAVA

Программисты JAVA общаются здесь
Anonymous
Как условно включить или отключить запланированные задания весной?

Сообщение Anonymous »

Я определяю запланированные задания с шаблонами стиля Cron весной, используя аннотацию @scheduled < /code>. На самом деле есть два файла свойств: один конфигурация по умолчанию и один конфигурация профиля, которая зависит от среды (например, Dev, Test, Prod Customer 1, Prod Customer 2 и т. Д.) И переопределяет некоторые значения по умолчанию. /> Бобы работы выглядят так: < /p>

@Component
public class ImagesPurgeJob implements Job {

private Logger logger = Logger.getLogger(this.getClass());

@Override
@Transactional(readOnly=true)
@Scheduled(cron = "${jobs.mediafiles.imagesPurgeJob.schedule}")
public void execute() {
//Do something
//can use DAO or other autowired beans here
}
}
< /code>

Соответствующие части моего контекста XML: < /p>








classpath:config/default-config.properties
classpath:config/environment-config.properties





< /code>

Мне очень нравится это. Это довольно просто и чисто с минимальным XML. < /P>

Однако у меня есть еще одно требование: некоторые из этих заданий могут быть полностью отключены в некоторых случаях. Нет: < /p>

jobs.mediafiles.imagesPurgeJob.enable=true or false
jobs.mediafiles.imagesPurgeJob.schedule=0 0 0/12 * * ?
< /code>

Как я могу использовать этот параметр в пружине для условного создания или просто игнорировать бобы, в зависимости от этого параметра конфигурации? Но бобы все еще будут созданы, и конфигурация была бы немного неясной, поэтому я чувствую, что должно быть лучшее решение.


Подробнее здесь: https://stackoverflow.com/questions/184 ... -in-spring

Вернуться в «JAVA»