【发布时间】:2017-07-14 12:19:43
【问题描述】:
我有两个入站通道适配器,它们从两个不同的来源收集文件。
我想通过同一个服务激活器实例在同一个线程中一次处理一个传入文件。目前,由于有两个不同的 Poller,它们实际上是由两个不同的线程同时处理的。
我认为使用 queueChannel 来提供我的服务激活器可以解决问题,但我不想引入另一个轮询器(因此,另一个延迟)。
有什么想法吗?
【问题讨论】:
我有两个入站通道适配器,它们从两个不同的来源收集文件。
我想通过同一个服务激活器实例在同一个线程中一次处理一个传入文件。目前,由于有两个不同的 Poller,它们实际上是由两个不同的线程同时处理的。
我认为使用 queueChannel 来提供我的服务激活器可以解决问题,但我不想引入另一个轮询器(因此,另一个延迟)。
有什么想法吗?
【问题讨论】:
使用ExecutorChannel 和Executors.newSingleThreadExecutor()。
您还可以使用 QueueChannel 和 0 的 fixedDelay;默认情况下,轮询器在队列中阻塞 1 秒(并且可以增加 - receiveTimeout),因此轮询之间的延迟为 0,不会增加额外的延迟。
【讨论】: