【发布时间】:2022-12-14 10:40:28
【问题描述】:
我使用以下配置运行一个 spring boot 应用程序来读取来自给定电子邮件帐户的电子邮件。然而,这个 springboot 应用程序是容器化的,因此我们在给定时间运行了这个应用程序的多个实例。
我的问题是,多个消费者[应用程序实例]是否会从电子邮件帐户获取相同的消息进行处理,或者如果消费者中的任何人阅读它,其他消费者[应用程序实例]将无法使用它?我试图避免重复处理消息。
配置 xml -
<int-mail:inbound-channel-adapter id="imapAdapter"
store-uri="imaps://abc.com/INBOX"
channel="receiveChannel"
should-delete-messages="false"
should-mark-messages-as-read="true"
java-mail-properties="javaMailProperties"
auto-startup="true">
<int:poller max-messages-per-poll="1" fixed-rate="600000" />
</int-mail:inbound-channel-adapter>
<util:properties id="javaMailProperties">
<prop key="mail.imap.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.imap.socketFactory.fallback">false</prop>
<prop key="mail.store.protocol">imaps</prop>
<prop key="mail.debug">false</prop>
<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop>
</util:properties>
<bean id="mailService" class="com.xpressbees.poller.EmailPoller"/>
<int:service-activator id="serviceActivator" input-channel="receiveChannel" ref="mailService" method="handleMail"/>
【问题讨论】:
标签: java spring-boot containers spring-integration