我有一个要求,例如使用 Mule 中的文件连接器将文件从入站目录传输到出站目录。传输文件时,将在输入文件连接器中配置的工作目录中处理该文件。
现在,我的要求是,如果我将旧文件放在文件输入目录中,则工作目录中的文件应该在修改的系统日期具有当前时间戳。它类似于Unix中使用的"触摸"命令,用于设置系统修改日期。
请不要,我不想使用任何 Groovy 脚本方法或任何其他可能影响性能的黑客方法来实现这一目标。以下是我的骡子流:-
<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:backuptest_workingDir" path="E:backuptest" moveToPattern="processingFile.xml">
</file:inbound-endpoint>
<file:outbound-endpoint path="E:backuptest_out" outputPattern="Finaloutput.txt" responseTimeout="10000" connector-ref="File1" doc:name="File"/>
提前致谢
您可以#[function:dateStamp]
或#[function:datestamp:dd-MM-yy]
来实现此链接中所述
一个例子是:
<file:outbound-endpoint path="E:backuptest_out" outputPattern="Finaloutput_[function:dateStamp].txt" responseTimeout="10000" connector-ref="File1" doc:name="File"/>
编辑:
要始终在工作 firectory 中显示文件的当前时间戳,您可以创建另一个流,该流以特定间隔从工作目录中读取文件,然后使用file:outbound-endpoint
将它们复制到同一目录
我们有 mel 使用它,我们 cal 实现当前日期和时间
[server.dateTime.format("yyyyMMddhhmmss")].txt
我们可以在表达式中设置的格式 u。
我有用
<file:outbound-endpoint path="YOUR_PATH" outputPattern="#[function:datestamp:yyyyMMdd-HHmmssSSSSSS]
_#[message.inboundProperties.originalFilename]" responseTimeout="10000" doc:name="Backup In Mule"/>