如何在Mule中设置系统修改日期

时间:2013-09-16 11:57:51

标签: file mule file-transfer mule-studio

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

请不要我不想使用任何可能影响性能的Groovy Script方法或任何其他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"/>

提前致谢

3 个答案:

答案 0 :(得分:1)

您可#[function:dateStamp]#[function:datestamp:dd-MM-yy]实现此目标,如link

所述

一个例子是:

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

修改

要始终在工作firectory中显示文件的当前时间戳,您可以创建另一个以特定间隔从工作目录中读取文件的流,并使用file:outbound-endpoint

将它们复制到同一目录

答案 1 :(得分:1)

我们使用这个我们得到当前的日期和时间

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

我们可以在表达式中设置格式。

答案 2 :(得分:0)

这对我有用

<file:outbound-endpoint path="YOUR_PATH" outputPattern="#[function:datestamp:yyyyMMdd-HHmmssSSSSSS]
_#[message.inboundProperties.originalFilename]" responseTimeout="10000" doc:name="Backup In Mule"/>