我正在使用Mule 3.3.1社区版。
我有一个接受HTTP请求的流程。这成功运行。
<flow name="TestFlow">
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8088" path="test" doc:name="HTTP" mimeType="text/plain"
encoding="UTF-8"/>
<logger level="INFO" category="hello" doc:name="Logger"/>
</flow>
服务需要是单线程的,以便严格按照接收邮件的顺序处理邮件。我的想法是设置maxThreadsActive = 1和maxBufferSize = 100来获得我想要的行为。但是,我无法控制线程的工作。
此时我只是试图让线程配置文件工作,无论线程数量多少。我在当前版本的Manning书 Mule in Action 中添加了一个线程配置文件,但是Mule将其拒绝为“无效内容”并且不会运行。
<flow name="TestFlow">
<threading-profile maxBufferSize="100" maxThreadsActive="20" maxThreadsIdle="10"
threadTTL="60000" poolExhaustedAction="RUN" />
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8088" path="test" doc:name="HTTP" mimeType="text/plain"
encoding="UTF-8"/>
<logger level="INFO" category="hello" doc:name="Logger"/>
</flow>
我评论出来并向上移动到配置块。
<configuration>
<default-threading-profile maxThreadsActive="20" maxBufferSize="100"
poolExhaustedAction="RUN" />
</configuration>
<flow name="TestFlow">
<http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8088" path="test" doc:name="HTTP" mimeType="text/plain"
encoding="UTF-8"/>
<logger level="INFO" category="hello" doc:name="Logger"/>
</flow>
Mule接受了这个,但服务不再返回;客户端只是等待响应。
如何配置我的流程以便我可以控制线程池大小,一旦完成,所以池中只有一个线程可用?
答案 0 :(得分:3)
您需要配置HTTP连接器的receiver-threading-profile
:
<http:connector name="httpConnector">
<receiver-threading-profile maxThreadsActive="1" />
</http:connector>