2017-11-08 1 views
1

Ich habe die folgende Konfiguration für meine eingehende Mail-Adapter. Alles funktioniert gut, wenn die Anwendung auf einem einzelnen Server ausgeführt wird. Wenn ich die Anwendung jedoch auf einem Server mit Lastenausgleich ausnutze, der dieselbe Mailbox abhört, wird die Mail auf dem gesamten Server gelesen. Wie mit diesem Szenario umgehen? Gibt es eine spezielle Konfiguration für solche Szenarien?Imap Idle Channel Adapter auf Last ausgeglichene Server

<int-mail:imap-idle-channel-adapter 
    id="customAdapter" 
    store-uri="${mail.protocol}://${mail.username}:${mail.password}@${mail.host}:${mail.port}/${mail.folder}" 
    channel="recieveEmailChannel" auto-startup="true" 
    should-delete-messages="false" 
    should-mark-messages-as-read="true" 
    java-mail-properties="javaMailProperties" 
    mail-filter-expression="subject matches '(?i).*Email Notification.*'" /> 

<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">true</prop> 
    <prop key="mail.imap.starttls.enable">true</prop> 
    <prop key="mail.imaps.ssl.trust">${mail.ssl.trust}</prop> 
    <prop key="mail.imaps.usesocketchannels">true</prop> 
</util:properties> 

<int:service-activator input-channel="recieveEmailChannel" expression="@emailService.process(payload)" /> 

Antwort

1

Einer von ihnen ist ein Leader Election vom selben role für die <int-mail:imap-idle-channel-adapter>.

Und ein weiterer ist ein Idempotent Receiver zu verfolgen Duplikate in der gemeinsamen MetadataStore.

+0

Dies ist für die neueste Spring-Integrationsversion ab 4+ verfügbar. –

+0

Entschuldigung, ich folge nicht. Ist das eine Frage? –

+0

Ja. Eigentlich bin ich immer noch auf Feder Integration Version 2.2.6 und kann nicht upgraden, da es Teil des Frameworks ist. Also gibt es eine Möglichkeit, dies in der älteren Version zu erreichen, anstatt einen benutzerdefinierten Code zu schreiben. –

Verwandte Themen