Spring Integration: получить выражение опроса из базы данных - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть источник сообщения FTP, и я хочу, чтобы пользователь мог настроить частоту опроса через приложение.

Это текущая конфигурация адаптера входящего канала

@Bean
@InboundChannelAdapter(channel = "fromSmartpath", poller = @Poller(cron = "0 15 8 ? * MON,TUE,WED,THU,FRI,SAT"))
public MessageSource<File> sftpMessageSource() throws SftpException {
    SftpInboundFileSynchronizingMessageSource source = new SftpInboundFileSynchronizingMessageSource(
            sftpInboundFileSynchronizer());
    source.setLocalDirectory(new File(Constants.LOCAL_REPOSITORY_PATH));
    source.setAutoCreateLocalDirectory(true);
    source.setLocalFilter(new FileSystemPersistentAcceptOnceFileListFilter(metaDataStore(), "metastore"));
    return source;
}

Моя цель - извлечь выражение cron из базы данных. Есть ли способ добиться этого?

Спасибо

1 Ответ

0 голосов
/ 05 ноября 2018

Выражение cron заканчивается на CronTrigger. Вы можете разработать некоторый сервис, который ВЫБИРАЕТ выражение из БД в его afterPropertiesSet() и возвращает его через геттер. Затем вы объявляете @Bean для CronTrigger и вызываете этот метод получения из службы во время его определения.

@Poller на @InboundChannelAdapter имеет опцию trigger для ссылки на существующий компонент.

...