Я работаю над приложением, которое еженедельно получает электронную почту с сервера IMAP и генерирует статистику об этом. Одним из них является количество сообщений на ту же тему.
Я думал об использовании средства повторной последовательности для хранения всех сообщений с сервера и генерирования статистики именно тогда, когда все новые сообщения были получены, и, наконец, для отправки сообщений по отдельности.
Но мне не хватает и sequence_number
, и correlation_id
, и я не могу найти правильный способ освобождения группы, когда сообщения на сервере заканчиваются.
Это мой integration-context.xml
:
<int:channel id="startMailSync"/>
<int:control-bus id="start" input-channel="startMailSync"/>
<int:channel id="receiveChannel" datatype="javax.mail.internet.MimeMessage" />
<int-mail:inbound-channel-adapter
id="mailClient"
channel="receiveChannel"
java-mail-properties="javaMailProperties"
store-uri="imaps://[user]:[password]@mail.it/INBOX"
should-mark-messages-as-read="true"
should-delete-messages="false"
mail-filter-expression="from[0].address matches 'sender@sender.it'"
auto-startup="false">
<int:poller trigger="runOnceTrigger" max-messages-per-poll="100"/>
</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>
</util:properties>
<int:resequencer
input-channel="receiveChannel"
output-channel="a"
>