Sub-flows
沒有自己的異常處理。子流程中觸發的異常通過調用流程(主流程)進行處理(主流程)
Private flows
是另一種類型的可重用流程,非常類似於子流程,但在線程和異常處理方面具有非常不同的行爲。使用私有流而不是子流的主要原因是在其中定義一個different exception strategy
而不是從調用流(子流不可能做到的事)。
私有流量不過是沒有入站端點的主流量。要再次啓動流程,請使用入站端點和捕獲異常策略創建流程主流,創建一個實現Callable接口的java組件,並使用muleClient.dispatch
再次開始流程。
試樣成分會是這樣的:
import org.mule.api.MuleEventContext;
import org.mule.api.MuleMessage;
import org.mule.api.lifecycle.Callable;
import org.mule.api.client.MuleClient;
public class MyCustomComponent implements Callable {
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
MuleClient muleClient = eventContext.getMuleContext().getClient();
muleClient.dispatch("jms://my.queue", "Message Payload", null);
}
}
試圖運行我的子流在我的使用catch-異常策略元素代碼後,它看起來像你不能有一個子流中。如何讓我的子流觸發特定的catch異常,並在與啓動時完全相同的上下文中重新啓動子流? –