mule - Mule4 使用读取连接器读取文件
问题描述
我对 Mule4 非常陌生,并且是第一次使用它。我正在尝试将文件从一个目录移动到另一个目录。我有一个“读取文件”连接器和“写入文件”连接器。在读取连接器中,我指定了文件路径和工作目录。在写入连接器上,我还指定了工作目录和路径。但是,文件不会从源目录移动到目标目录。但是,如果我在流程的开头添加了一个 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
推荐阅读
- python - 使用 pandas .agg 执行 value_counts() 两次
- c++ - 如果 std::function 捕获了 unique_ptr,如何复制它?
- shopify - 将 Quickbooks POS 与 Shopify 集成
- javascript - Node http模块-拦截http.request函数时获取请求体
- postgresql - Grafana PostgreSQL 非时间序列图形面板可视化
- json - Spark:JSON Nullable 字段处理
- wordpress - 删除 WooCommerce 的一些功能
- kotlin - (A) -> B 到 Kotlin 函数未推断
- google-cloud-platform - Google Spanner 通过 Dataflow 到 PubSub
- matlab - 从函数返回并调用多个值