2015-03-25 3 views
2

Я хотел бы отключить планирование весов через внешний файл конфигурации. У меня есть настройка файла конфигурации, и задача в приведенном ниже примере выдает следующее. 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

Использование профилей. Создайте отдельный класс '@ Configuration' для' @ EnableScheduling', который включен только в определенном профиле. –

ответ

2

Если вы используете загрузку пружины, вы можете использовать @ConditionalOnExpression аннотацию, чтобы включить или отключить планирование:

@ConditionalOnExpression("'${enable.scheduling}'=='true'") 
+0

Мне нравится этот ответ. Тем не менее, у меня нет настройки как весенняя загрузка. Есть ли способ, которым я могу использовать это без этой зависимости? –

+0

Нет, это невозможно, поскольку эта аннотация является частью весеннего ботинка. – Mithun

+0

не работает ... я пытаюсь отключить планирование для тестов весной загрузки – Hinotori

Смежные вопросы