2015-02-10 13 views

回答

1

無論何時想要將行添加到已存在的文件中,都可以將'outputAppend'屬性設置爲true。

<file:connector name="File" autoDelete="true" 
    outputAppend="true" streaming="true" validateConnections="true" 
    doc:name="File" /> 

此外,你還可以使用批處理模塊來處理數百萬條消息的。欲瞭解更多信息,請檢查:http://www.mulesoft.org/documentation/display/current/Batch+Processing

1

Clare對outputAppend="true"的說法是正確的,但請注意,當您使用它時,活動調度程序的最大數量會降至1,這可能會嚴重影響性能。另一方面,我假設你想要的只是一個文件,並在最後添加一些內容,所以你需要一個文件輸入源。在這種情況下,您可以在文件連接器中配置「工作目錄」,並使用與文件出站端點的輸出路徑相同的目錄。 這樣,文件被文件入站端點取走並移動,然後由文件出站端點取得,最後添加有效載荷。 因此,文件內容永遠不會消耗,只需在文件末尾添加配置的有效負載即可。

下面的示例配置:

<file:connector name="File" autoDelete="false" outputAppend="true" streaming="true" validateConnections="true"/> 
<flow name="appendPayloadToFile"> 
    <file:inbound-endpoint path="/source-dir/" connector-ref="File" responseTimeout="10000" /> 
    <set-payload value="ADDED-CONTENT"/> 
    <file:outbound-endpoint path="/target-dir/" connector-ref="File" responseTimeout="10000"/> 
</flow> 

如果這個解決方案不是高性能的話,你可以嘗試創建一個自定義的Java組件,需要從入站端點文件,關閉它,然後再次打開它的輸出和附加所需的內容。

如果你有一些工作流程請分享。

HTH, Marcos