Я получаю данные из нескольких источников в разных потоках. Планирование передачи данных на один канал, а затем отдельный поток будет обрабатывать данные с этого канала. Мой контекст следующий:Весна Интеграция асинхронной обработки с использованием диспетчера
<task:executor id="singleThreadedExecutor" pool-size="1" />
<int:channel id="entryChannel">
<int:dispatcher task-executor="singleThreadedExecutor"/>
</int:channel>
<int:header-enricher input-channel="entryChannel" output-channel="processDataChannel">
<int:error-channel ref="exceptionHandlerChannel" overwrite="true" />
<int:header name="systemtime" expression="T(java.lang.System).currentTimeMillis()" />
<int:header name="nanotime" expression="T(java.lang.System).nanoTime()" />
</int:header-enricher>
Я хотел обработать данные, как только он поступит. У меня есть проблемы, когда данные поступают намного быстрее, чем время обработки данных, в отдельный поток. Из документации, вызывающей Отправить на записьКаталог должен немедленно вернуться. Имеет ли диспетчер внутренний механизм очередей для обеспечения передачи данных на канал? Как мы можем гарантировать, что данные будут переданы, как только они поступят? Хотите узнать о лучшей практике в тех случаях, когда нам нужно обрабатывать данные в отдельном потоке, как только он поступит, в SI?