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

Mule4使用读取连接器读取文件,mule,mule-esb,Mule,Mule Esb,我对Mule4非常陌生,并且是第一次使用它。我正在尝试将文件从一个目录移动到另一个目录。我有一个“读文件”连接器和“写文件”连接器。在Read连接器中,我指定了文件路径和工作目录。在写连接器上,我还指定了工作目录和路径。但是,文件不会从源目录移动到目标目录。但是,如果我在流的开头添加一个HTTP侦听器,那么如果我通过访问它,它就会工作。但我想知道,每当源代码中有一个新文件时,如何实现这一点,以便流自动将文件从源目录移动到目标目录?请看截图 您需要一些东西来触发流运行文件:read不会自动执行此

我对Mule4非常陌生,并且是第一次使用它。我正在尝试将文件从一个目录移动到另一个目录。我有一个“读文件”连接器和“写文件”连接器。在Read连接器中,我指定了文件路径和工作目录。在写连接器上,我还指定了工作目录和路径。但是,文件不会从源目录移动到目标目录。但是,如果我在流的开头添加一个HTTP侦听器,那么如果我通过访问它,它就会工作。但我想知道,每当源代码中有一个新文件时,如何实现这一点,以便流自动将文件从源目录移动到目标目录?请看截图


您需要一些东西来触发流运行<代码>文件:read不会自动执行此操作,这就是触发http请求的原因

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

如果您知道所需的确切文件,则可以在
文件: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。详情如下: