gpt4 book ai didi

java - 内循环队列发布的替代方案

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:35 24 4
gpt4 key购买 nike

我想使用camelContext蓝图以异步方式发布队列中的数据。

完整上下文:

<camelContext id="xContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="notifPublisher">
<from id="notifService" uri="cxfrs:bean:xRequestService"/>
<inOnly id="toRequestQueue" uri="activemq:queue:{{data.queue}}?jmsMessageType=Text"/>
<setHeader headerName="Content-Type" id="setContentType"/>
</route>
<route id="xReceiver">
<from id="dataqueue" uri="activemq:queue:{{data.queue}}?jmsMessageType=Text"/>
<log id="logDataQueue_" message="Data/DatAs ${body}"/>
<bean id="fetchUsers" method="fetchUsers" ref="dataProcessor"/>
<bean id="checkDataInList" method="checkDataInList" ref="dataProcessor"/>
<loop doWhile="true" id="_loop1">
<simple>${header.mailMap} != 'EMPTY'</simple>
<bean id="sendInQueuePerData" method="sendInQueuePerData" ref="dataProcessor"/>
<to id="emailqueue" uri="activemq:queue:{{email.queue}}?jmsMessageType=Text"/>
</loop>
</route>
</camelContext>

emailQueue 开始由其他 emailProcessor 处理。emailProcessor 正在向 SMTP 发送电子邮件。

问题是数据处理器被阻塞,直到它完成所有输入数据。一旦将数据发送到队列,它就不应该被阻塞。

最佳答案

这里不需要 for 循环。将 checkDataInList 的输出传递到拆分器,然后传递到电子邮件处理器。

这将是非阻塞的,并且是更 Camel 的做事方式。

关于java - 内循环队列发布的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56662478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com