我有2个流程。FlowA 接收呼叫(htp-inbound)并将消息放入队列。FlowB 从这个队列中获取消息并进入直到成功循环。直到成功拨打外线电话。
<flowA>
<http-inbound/>
<put message on queueA/>
</flowA>
<flowB>
<jms:inbound queueA>
<until-successful>
<http-outbound/>
</until-successful>
</flowB>
我在调试模式下运行它,并带有一个断点,在该断点中进行出站调用,直到成功。我看到每次调用都会创建一个新线程(直到成功),直到我们达到 15。从第 16 次调用开始,由于线程池已满,因此在 flowB 的线程中继续执行。我看到又创建了 16 个 flowB 线程。之后,当 flowA 将消息放入队列时,flowB 将其拾取,但我无法弄清楚它接下来要去哪里:( 消息丢失了!它没有尝试进行任何出站呼叫。
我在想 16 是默认的线程池大小。
当直到成功被阻止时,预期的行为是什么?我希望当所有线程都忙时消息会排队。
如果我需要改写问题,请告诉我。
我在调试模式下运行,可能搞砸了……所以……请多多包涵。