当前位置: 首页 > 知识库问答 >
问题:

Spring Integration-入站通道适配器执行下行通道并行处理

乌翰学
2023-03-14
@InboundChannelAdapter (incoming channel, custompoller) 
public MessageSource<File> pollFile ( Directory Scanner)  {
} 

public PollerMetadata custompoller(errorhandler) {
poller.trigger(cron for every 10 minutes)
}

@ServiceActivator(incoming channel)
public MessageHandler filewritertotempdiretory() {
outputchannel(tempdirchannel) 
}


@ServiceActivator(inputChannel = tempdirchannel)
public MessageHandler tempdirfilehandler() {
    MethodInvokingMessageHandler messageHandler =   (launcher class, "methodname");
        return messageHandler;
}


Poller Metadata.  Read in some other SO that we should not put the task executor when setting poller on cron, is that  true ?  
also how can i make the messages polled (say 10 messages polled) execute in parallel i.e. add task executor in poller metadata 

    @Bean
    public PollerMetadata preProcessPoller(MessagePublishingErrorHandler errorHandler) {
        PollerMetadata poller = new PollerMetadata();
        poller.setTrigger(new CronTrigger("0/15 * * * * ?"));
        poller.setMaxMessagesPerPoll(Long.valueOf(maxMessagesPerPoll));
        errorHandler.setDefaultErrorChannel(errorChannel());
        poller.setErrorHandler(errorHandler);
        return poller;
    }

共有1个答案

高正初
2023-03-14

您需要显示完整的pollermetadata配置。

最好的猜测是您没有设置MaxMessagesPerPoll

默认情况下,对于入站通道适配器,MaxMessagesPerpoll为1。

 类似资料:
  • 如果我创建一个SFTP入站通道适配器,并使用在SFTP中配置为channel属性的通道发送一些文件。文件将传输到SFTP远程目录本地目录,还是直接从通道流到本地目录

  • 问题内容: Spring Integration FTP中的入站通道适配器和出站通道适配器之间有什么区别?我应该使用哪一个?何时使用? 我从文档中了解到,出站可以发送任何类型的文件(例如byte [],String,java.io.File),但入站仅限于文件类型。那仅仅是区别还是其他? 问题答案: 我建议您首先阅读理论 。 任何Inbound适配器都旨在从外部系统获取数据。Outbound-放置

  • 问题内容: 入站和出站通道适配器之间的根本区别是什么? 任何示例都将非常有帮助。 我已经查看过Spring文档,这种“方向性”的区别对我来说还不清楚。我支持配置了outbound-channel-adapter的应用程序,但是我发现使用 出站 标签可以直观地了解行为计数器。该适配器获取一个外部文件,然后 将其 引入应用程序中, 在 该应用程序中我们解析文件并保留数据。 这类似于这个问题,但是我想更

  • Channel是连接并行协程(goroutine)的通道。你可以向一个通道写入数据然后从另外一个通道读取数据。 package main import "fmt" func main() { // 使用`make(chan 数据类型)`来创建一个Channel // Channel的类型就是它们所传递的数据的类型 messages := make(chan string)

  • 如何通过注释而不是常规配置文件配置入站通道适配器?我可以为会话工厂定义bean,如下所示: 如何配置通过注释下给出的入站通道适配器? 我正在寻找的是在应用程序启动时连接所有bean,然后公开一些方法来开始轮询服务器,处理它们,然后从本地删除它们,类似于 其中getPollableChannel()为我提供了用于轮询的bean。