2

我有一个要求,例如使用 Mule 中的文件连接器将文件从入站目录传输到出站目录。在传输文件时,它在输入文件连接器中配置的工作目录中进行处理。
现在,我的要求是,如果我在文件输入目录中放置一个旧文件,则工作目录中的文件应该具有修改系统日期的当前时间戳。它类似于Unix 中用于设置系统修改日期的“ Touch ”命令。

请注意,我不想使用任何 Groovy 脚本方法或任何其他可能影响性能的 hack 方法来实现这一点。以下是我的 Mule mflow:-

<file:connector name="File"     autoDelete="true" streaming="true" validateConnections="true" doc:name="File" outputAppend="true"/>
<file:connector name="File1" autoDelete="false" streaming="false" validateConnections="true" doc:name="File"/>
<flow name="FileReadandDeleteFlow1" doc:name="FileReadandDeleteFlow1">
    <file:inbound-endpoint   responseTimeout="10000" doc:name="File" connector-ref="File" moveToDirectory="E:\backup\test_workingDir"  path="E:\backup\test" moveToPattern="processingFile.xml">
    </file:inbound-endpoint>
    <file:outbound-endpoint path="E:\backup\test_out" outputPattern="Finaloutput.txt" responseTimeout="10000" connector-ref="File1" doc:name="File"/>

提前致谢

4

3 回答 3

1

您可以#[function:dateStamp]#[function:datestamp:dd-MM-yy]按照此链接中的说明实现此目的

一个例子是:

<file:outbound-endpoint path="E:\backup\test_out" outputPattern="Finaloutput_[function:dateStamp].txt" responseTimeout="10000" connector-ref="File1" doc:name="File"/>

编辑:

要始终在工作火力中显示文件的当前时间戳,您可以创建另一个流程,以特定间隔从工作目录读取文件,然后使用将它们复制到同一目录file:outbound-endpoint

于 2013-09-16T13:24:42.307 回答
1

我们有 mel 使用它,我们可以实现当前日期和时间

[server.dateTime.format("yyyyMMddhhmmss")].txt

我们可以在表达式中设置您喜欢的格式。

于 2015-05-28T08:42:32.780 回答
0

这对我有用

<file:outbound-endpoint path="YOUR_PATH" outputPattern="#[function:datestamp:yyyyMMdd-HHmmssSSSSSS]
_#[message.inboundProperties.originalFilename]" responseTimeout="10000" doc:name="Backup In Mule"/>
于 2019-03-19T04:15:36.587 回答