У меня есть класс конфигурации FTPSchedullingConfiguration, который инициализируется при создании экземпляра приложения и получает данные из таблицы для запуска планировщика по заданному выражению планирования.
А также мой вопрос не является дублирующимся как Перезарядка / Обновление SpringКонфигурационный файл без перезапуска контейнера сервлета вот так, потому что у меня нет никакого XML-файла, мое приложение основано на аннотации, и здесь все классы скомпилированы в формате .class, поэтому мы не можем изменять любой код во время выполнения.
@Configuration
@EnableScheduling
public class FTPSchedullingConfiguration {
@Autowired
private FTPTransferServiceInterface ftpTransferServiceInterface;
@Bean
public String getCronFTPTransferValue()
{
return ftpTransferServiceInterface.getFTPTransferById((long) 1).getTransferCroneTime();
}
@Scheduled(cron="#{@getCronFTPTransferValue}")
public void ftpTransfer() {
ftpTransferServiceInterface.transferFTPRecording();
}
}
Но когда я изменяю расписание выражения таблицы, то по расписанию не меняется.если я перезагружаю сервер, то меняю загрузку Expression.
с помощью updateFTP (),
@RequestMapping(value= {"/updateFTPTransfer"})
private String updateFTP(...){
ftpTransferServiceInterface.updateFTP(ftpDomain);
//here i want to change the value of @Scheduled
}
моя фактическая потребность, например, когда я изменял значение Expression в таблице на updateFTP(...){...}
в то время, также мойзначение планировщика изменено (ИЛИ) Обновлен класс FTPSchedullingConfiguration.
Заранее спасибо.