Mule ESB Quartz配置应用
功能:下载文件过滤保存。注意原带的FTP Connector不能传递多个文件,要定制FTP transport.
<?xml version="1.0" encoding="UTF-8"?>
<custom-connector name="icbcFtpConnector" jobName="icbcSaveJob" cronExpression="0 30 20 * * ? *" connector-ref="quartzConnector">
</quartz:endpoint>
<ftp:endpoint name="icbcFtpIn" binary="false" passive="true" host="10.0.26.33" port="21" path="/home/janly/ftp" user="janly" password="123456" connector-ref="icbcFtpConnector">
<filter ref="accountFilter" />
</ftp:endpoint>
<file:endpoint name="icbcFileWrite" path="/opt/icbc" outputPattern="#[header:originalFilename]" connector-ref="fileConnector">
</file:endpoint>
<custom-transformer name="accountTransformer" synchronous="true">
<quartz:endpoint-polling-job>
<quartz:job-endpoint ref="icbcFtpIn" timeout="30000"/>
</quartz:endpoint-polling-job>
</quartz:inbound-endpoint>
</inbound>
<script:component>
<script:script engine="groovy">
def clsr={
message.setStringProperty("PACKET.BODY.CHECKENTERPCODE","ICBC");
message.setStringProperty("PACKET.BODY.CHECKFILEFLAG","3");
def cal=java.util.Calendar.getInstance();
def sdf=new java.text.SimpleDateFormat("yyyy-MM-dd");
message.setStringProperty("PACKET.BODY.CHECKFILEDATE",sdf.format(cal.getTime()));
}
clsr.call();
return message;
</script:script>
</script:component>
<outbound matchAll="true">
<list-message-splitter-router>
<file:outbound-endpoint ref="icbcFileWrite" synchronous="true">
</file:outbound-endpoint>
</list-message-splitter-router>
<pass-through-router>
<vm:outbound-endpoint ref="extAccountSave" transformer-refs="accountTransformer" synchronous="false" />
</pass-through-router>
</outbound>
</service>
</model>
</mule>