Mule4 使用读取连接器读取文件

Mule4 using read connector to read a file

我是 Mule4 的新手,也是第一次使用它。我正在尝试将文件从一个目录移动到另一个目录。我有一个 "Read file" 连接器和 "Write file" 连接器。在读取连接器中,我指定了文件路径和工作目录。在写入连接器上,我还指定了工作目录和路径。但是,文件不会从源目录移动到目标目录。但是,如果我在流程的开头添加一个 HTTP 侦听器,那么如果我通过 http://localhost:8081 访问它,它将起作用。但是我想知道每当源中有一个新文件时我如何完成此操作,以便流程自动将文件从源目录移动到目标目录?请看截图

您需要一些东西来触发流向 运行。 file:read 不会自动执行此操作,这就是为什么要触发的 http 请求对您有用。

除非您使用 flow-ref 从其他流调用它们(或使用 lookup() 从 dataweave 调用它们),否则所有流都需要“源”来触发它们。

如果您知道您想要的确切文件,那么您可以在 file:read 之前放置一个调度程序来触发流程:

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

或者您可以使用 file: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