Spring 集成:从数据库中获取轮询表达式
Spring Integration : get poll expression from database
我有一个 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 表达式。有办法实现吗?
谢谢
cron 表达式在 CronTrigger
中结束。您可以开发一些服务,其中 SELECT 来自 DB 的表达式 afterPropertiesSet()
和 returns 它通过 getter。
然后为 CronTrigger
声明一个 @Bean
并在其定义期间从服务中调用 getter。
@InboundChannelAdapter
上的 @Poller
有一个 trigger
选项来引用现有的 bean。
我有一个 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 表达式。有办法实现吗?
谢谢
cron 表达式在 CronTrigger
中结束。您可以开发一些服务,其中 SELECT 来自 DB 的表达式 afterPropertiesSet()
和 returns 它通过 getter。
然后为 CronTrigger
声明一个 @Bean
并在其定义期间从服务中调用 getter。
@InboundChannelAdapter
上的 @Poller
有一个 trigger
选项来引用现有的 bean。