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

时间:2019-02-03 16:22:58

标签: mule mule-esb

我是Mule4的新手,并且是第一次使用它。我正在尝试将文件从一个目录移动到另一个目录。我有一个“读取文件”连接器和“写入文件”连接器。在读取连接器中,我指定了文件路径和工作目录。在写连接器上,我还指定了工作目录和路径。但是,该文件不会从源目录移动到目标目录。但是,如果我在流程的开头添加了HTTP侦听器,那么当我通过http://localhost:8081访问它时,它将起作用。但是我想知道只要源文件中有一个新文件怎么办,所以流程自动将文件从源文件移到目标目录?请查看屏幕截图

This Flow doesn't work

This flow works

1 个答案:

答案 0 :(得分:3)

您需要一些东西来触发流程的运行。 Future<Map<String, dynamic>> getData() async { ... } 不会自动执行此操作,因此http请求触发对您有效。

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

如果知道所需的确切文件,则可以将调度程序放在flow-ref之前以触发流:

file:read

或者您可以使用file:listener直接侦听目录等中的新文件作为源:

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

您可以使用固定频率或cron。此处有更多详细信息:https://docs.mulesoft.com/mule-runtime/4.1/scheduler-xml-reference