我有一个非常类似的要求,就像here中提到的那样,但我使用Imap如下,我的spring-integration版本是1.0.4:
<mail:inbound-channel-adapter id="imapAdapter"
store-uri="imaps://user:pass@domain:993/inbox"
channel="recieveEmailChannel"
auto-startup="true"
java-mail-properties="javaMailProperties">
<int:poller>
<int:interval-trigger initial-delay="1000" interval="2000"
fixed-rate="true"/>
<int:transactional transaction-manager="transactionManager" propagation="REQUIRED"/>
</int:poller>
</mail:inbound-channel-adapter>
<int:channel id="recieveEmailChannel" />
<int:service-activator input-channel="recieveEmailChannel" ref="emailReceiverService" method="receive"/>
<bean id="emailReceiverService" class="com.mydomain.email.in.DefaultEmailReceiverUtilService">
</bean>
问题 Imap是否支持Spring-integration 1.0.4中的事务处理?
答案 0 :(得分:1)
相同的答案 - 邮件服务器不支持交易。
答案 1 :(得分:1)
如文档中所述,事务轮询器不会构成本质上非事务性的资源事务。如果使用上游资源(例如JDBC),则事务将随poll一起启动,并在线程完成其工作时提交。
从2.2.0开始,邮件轮询器上的事务元素允许您使用此类事务SYNCHRONIZE某些操作。例如,这允许您在事务提交时删除电子邮件,但如果它回滚则将其保留在邮箱中。
同样,这不会使邮件成为交易。