весенняя интеграция: как собрать все новые почтовые сообщения и посчитать их - PullRequest
0 голосов
/ 09 января 2019

Я работаю над приложением, которое еженедельно получает электронную почту с сервера 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"
 >

1 Ответ

0 голосов
/ 09 января 2019

Вы должны использовать агрегатор, а не повторный секвенсор; Вы можете использовать собственную стратегию / выражение корреляции (например, коррелировать по теме) и собственную стратегию / выражение релиза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...