<int:channel id="emailInputChannel"/>
<!-- Email Poller. Only one poller thread -->
<task:executor id="emailPollingExecutor" pool-size="1" />
<int-mail:inbound-channel-adapter id="pop3EmailAdapter" store-uri="pop3://${pop3.user}:${pop3.pwd}@${pop3.server.host}/Inbox"
channel="emailInputChannel" should-delete-messages="true" auto-startup="true" java-mail-properties="javaMailProperties">
<int:poller max-messages-per-poll="1" fixed-delay="${email.poller.delay}" task-executor="emailPollingExecutor"/>
</int-mail:inbound-channel-adapter>
<!-- Java Mail POP3 properties -->
<util:properties id="javaMailProperties">
<beans:prop key="mail.debug">true</beans:prop>
<beans:prop key="mail.pop3.port">${pop3.server.port}</beans:prop>
</util:properties>
此应用程序轮询包含应用程序文件附件的电子邮件,其中包含要处理的数据。电子邮件附件通常每天发送几次,并且相对零星。由于文件包含批量加载的数据,因此我们使用单个轮询器来配置入站POP3邮件适配器。有多个轮询器导致重复的轮询器调用拉同一个电子邮件,而另一个轮询器正在处理它。但是,使用此配置时,单个轮询器会在一段时间后挂起,而不会在日志中显示问题。请查看此配置的错误。此外,是否有另一种方法来触发电子邮件适配器(例如定期间隔的cron等)?我正在使用Spring Integration 2.1
答案 0 :(得分:0)
挂起的轮询器很可能是由于用户代码卡住的线程造成的。我看到你有mail.debug = true。如果没有显示任何活动,那么挂起的线程可能就是原因。使用我们jstack进行线程转储。
是的,您可以使用表情,但这不太可能改变一切。
2.1非常陈旧,但我仍然认为悬挂线程是原因。