如何在mule中使用SEDA调用流

如何在mule中使用SEDA调用流,mule,Mule,我需要在mule流中实现SEDA类型的端点。谁能告诉我一些链接或例子来做这件事。我需要分割数据块,并调用在不同线程中执行分割数据的流 如果您没有在流程中将处理策略标记为同步,那么默认情况下它将使用该策略 您可以在流中使用队列异步处理策略。参考: SEDA示例:- <jms:activemq-connector numberOfConcurrentTransactedReceivers="20" name="Active_MQ" numberOfConsumers="15" brokerUR

我需要在mule流中实现SEDA类型的端点。谁能告诉我一些链接或例子来做这件事。我需要分割数据块,并调用在不同线程中执行分割数据的流

如果您没有在流程中将处理策略标记为同步,那么默认情况下它将使用该策略


您可以在流中使用队列异步处理策略。参考:

SEDA示例:-

<jms:activemq-connector numberOfConcurrentTransactedReceivers="20" name="Active_MQ" numberOfConsumers="15" brokerURL="tcp://localhost:61616" doc:name="Active MQ">
    <receiver-threading-profile maxThreadsActive="15"/> <!-- for inbound -->
    <dispatcher-threading-profile maxThreadsActive="15"/> <!-- for outbound -->
</jms:activemq-connector>


    <flow name="JMSSender" doc:name="JMSSender" processingStrategy="queued-asynchronous">
        <http:inbound-endpoint  host="localhost" port="8081" path="jms" doc:name="HTTP" exchange-pattern="one-way"/>
        <set-payload value="Test Payload for SEDA model" doc:name="Set Payload"/>
        <logger message="Payload :- #[message.payload]" level="INFO" doc:name="Logger"/>
        <jms:outbound-endpoint queue="MyQueue" connector-ref="Active_MQ" doc:name="JMS"/>
    </flow>


    <flow name="JMSReceiver" doc:name="JMSReceiver" processingStrategy="queued-asynchronous">
    <jms:inbound-endpoint connector-ref="Active_MQ"  doc:name="JMS"  address="jms://tcp:MyQueue"/>
       <!-- other message proccessor -->
    <logger level="INFO" message="Received Payload :-#[message.payload]" doc:name="Logger"/>
    </flow>       


您还可以将流引用包装在异步作用域中。这样,主流程仍然可以是同步的,您可以在一个单独的异步线程中调用批处理,如果您将应用程序部署到Mule集群中(或部署具有多个CloudHub Worker的应用程序),则可以使用多个Worker。

是否有任何方法可以在同步流程中执行特定的SEDA调用。否,一旦您将处理策略标记为“同步”流,它将不会使用SEDA队列,它将始终只是一个线程。。