Spring Integration 1.0 RC2: потоковое содержимое файлов?

Я пытался найти информацию по этому вопросу, но из-за незрелости среды Spring Integration мне не повезло.

Вот мой желаемый рабочий процесс:

  1. Новые файлы помещаются в папку «Входящие»

  2. Файлы подбираются с помощью файла: inbound-channel-adapter

  3. Содержимое файла передается по N строк за раз в канал «Этап 1», который разбивает строку в промежуточное (общее) представление.

  4. Эта проанализированная линия направляется на несколько каналов «Этап 2».

  5. Каждый канал «Этап 2» выполняет свою собственную обработку на N доступных строках, чтобы преобразовать их в окончательное представление. Этот канал должен иметь очередь, которая гарантирует, что ни один канал стадии 2 не будет перегружен в случае, если один канал обрабатывает значительно медленнее, чем другие.

  6. Окончательное представление N строк записывается в файл. Выходных файлов будет столько же, сколько было получателей маршрутизации на шаге 4.

** «N» выше обозначает любое разумное количество строк для чтения за раз, начиная с [1, независимо от того, что я могу вписать в память разумно], но гарантированно всегда будет меньше, чем количество строк в полном файле. *

Как выполнить потоковую передачу (шаги 3, 4, 5) в Spring Integration? Это довольно легко сделать без потоковой передачи файлов, но мои файлы достаточно велики, поэтому я не могу прочитать весь файл в память.

Как примечание, у меня есть рабочая реализация этого рабочего процесса без Spring Integration, но, поскольку мы используем Spring Integration в других местах нашего проекта, я хотел бы попробовать его здесь, чтобы увидеть, как он работает и как получается Код сравнивается по длине и ясности.

10.12.2008 20:36:50
1 ОТВЕТ
РЕШЕНИЕ

Это очень интересный вариант использования, который я сожалею, что пропустил так долго. Это определенно стоит создать проблему для. На данный момент у нас есть поддержка в Spring Integration для сбора файлов и отправки ссылок на них . Существует также некоторая элементарная поддержка для преобразования файлов в байт [] или строку.

Ответ заключается в том, что теперь вы должны выполнить шаг 2 в пользовательском коде Java, отправив блоки на канал стадии 2. Я бы не рекомендовал отправлять ссылки на потоки вокруг как полезные сообщения.

1
8.05.2010 10:43:19