Mule4 использует разъем чтения для чтения файла - PullRequest
0 голосов
/ 03 февраля 2019

Я очень плохо знаком с Mule4 и использую его впервые.Я пытаюсь переместить файл из одного каталога в другой.У меня есть разъем «Чтение файла» и «Запись файла».В соединителе чтения я указал путь к файлу и рабочий каталог.на соединителе записи я также указал рабочий каталог и путь.Однако файл не перемещается из исходного в целевой каталог.Но если я добавлю прослушиватель HTTP в начале потока, он будет работать, если я получу к нему доступ через http://localhost:8081. Но я хочу знать, как я могу это сделать всякий раз, когда в исходном файле появляется новый файл, поэтомупоток автоматически перемещает файл из исходного каталога в целевой?Пожалуйста, смотрите скриншот

This Flow doesn't work

This flow works

1 Ответ

0 голосов
/ 03 февраля 2019

Вам нужно что-то для запуска потока.file:read не делает этого автоматически, поэтому HTTP-запросы для запуска работают для вас.

Всем потокам нужен «Источник» для их запуска, если вы не вызываете их из других потоков, используя flow-ref (или изпереплетение данных с использованием lookup ()).

Если вы знаете точный файл, который вам нужен, то можете поставить планировщик перед file:read, чтобы запустить поток:

<scheduler>
  <scheduling-strategy>
    <fixed-frequency startDelay="5" frequency="10" timeUnit="SECONDS"/>
  </scheduling-strategy>
</scheduler>

Или вы можетеиспользуйте файл: listener для прослушивания новых файлов в каталоге и т. д. в качестве источника напрямую:

<flow name="onNewFile">
  <file:listener config-ref="file" directory="test-data/in" autoDelete="true">
    <scheduling-strategy>
      <fixed-frequency frequency="1000"/>
    </scheduling-strategy>
  </file:listener>
  ...
</flow>

Вы можете использовать фиксированную частоту или cron.Подробнее здесь: https://docs.mulesoft.com/mule-runtime/4.1/scheduler-xml-reference

...