Fuse / Camel: как остановиться после загрузки всего одного файла

#apache-camel #jbossfuse

#apache-camel #jbossfuse

Вопрос:

Здесь новичок в Fuse / Camel. Я пытаюсь автоматизировать ручной процесс, при котором .done файлы загружаются с FTP-хоста, затем переименовываются "fileout.txt" , и, наконец, для этого файла выполняется программа AS / 400.

Однако у отдела, на котором размещена AS/400 программа, нет ресурсов для обновления своих программ. Решение, над которым я работаю, заключается в том, чтобы заставить Camel загружать по одному файлу за раз, сохранять его как "fileout.txt" , затем запускать программу JT400 для его обработки. По отдельности эти шаги работают, но у меня остается одна проблема.

Я молю вас, дорогой читатель, помочь мне в «Как я могу остановить Camel после загрузки всего одного файла?» (поскольку перезапись, добавление или загрузка нескольких файлов на следующем шаге не будут работать) «.

Комментарии:

1. Не могли бы вы добавить то, что вы пробовали до сих пор, и быть более конкретными с тем, что вы пытаетесь запросить.

2. Пробовал использовать fileexists = fail для записи одного и отмены остальных, но это не приводит к удалению файла с FTP. Пытался вычислить регулярное выражение для выбора только одного файла, но я не думаю, что они могут сравнивать от файла к файлу. Пытался разобраться с seda в sequence, но я не уверен, что это соответствует потребностям, и на первый взгляд это не имеет особого смысла для меня.

3. Слава богу, это сработало. Спасибо, HK!

Ответ №1:

Как я могу остановить Camel после загрузки всего одного файла?

Вы можете установить следующие параметры в FTP consumer

  • maxMessagesPerPoll=1 (Ограничить количество сообщений, загружаемых за один пакет)
  • delay=500000 (Увеличивайте интервал времени между каждым опросом, чтобы у вас было время остановить маршрут)

Затем ваш ftp-маршрут может инициировать отправку асинхронного сообщения (возможно, компонента прослушивания) на другой маршрут, чтобы вызвать компонент controlBus для остановки ftp-маршрута по идентификатору маршрута.

Я пытаюсь автоматизировать ручной процесс, при котором .done файлы загружаются с FTP-хоста, затем переименовываются fileout.txt и, наконец, для этого файла выполняется программа AS / 400

Кроме остановки / запуска вашего маршрута, вы можете попробовать компонент, обогащенный пыльцой, с использованием FTP. Используя pollEnrich, вы можете при необходимости один раз запустить FTP consumer, если вам уже известно имя целевого файла.