2 Stimmen

JavaMail IMAP IDLE vs polling Zuverlässigkeit

Ich möchte einen Serverprozess programmieren, der eingehende E-Mails verarbeitet. Hierfür sehe ich zwei Optionen: 1. Polling und 2. E-Mail-Push mit der IMAP-IDLE-Funktion. Beides kann mit JavaMail gemacht werden. Ich tendiere dazu, das Ganze mit IMAP IDLE zu implementieren, aber ich habe Bedenken hinsichtlich der Zuverlässigkeit. Da es als Serverprozess 7x24 laufen wird, wäre es fatal, wenn der Service einfach stehen bleibt, einfriert oder unresponsive wird.

Also lautet die Frage am Ende: Kann die IMAP-IDLE-Funktion sicher in einen Serverprozess implementiert werden, oder ist der Polling-Ansatz in Bezug auf Zuverlässigkeit und Stabilität die bessere Lösung?

2voto

Anshul Punkte 1366

IMAP Idle läuft nicht rund um die Uhr, in der Regel haben fast alle Mailer eine Timeout-Zeit für IDLE definiert, etwa 30 Minuten. Wenn der Server das nicht macht, könnte das ein großes Engpass sein, da Geräte wie IMAP/iPad und einige andere Clients gleichzeitig mehrere Instanzen instanziieren und die Verbindung möglicherweise öffnen oder schließen. Für den Fall, dass es kein IDLE Timeout gibt, würden sich auf dem Server so viele nicht beendete und nutzlose Verbindungen anhäufen, was das gesamte System effektiv zum Erliegen bringen könnte.

Das Abrufen von Daten könnte eine gute Option sein, aber das könnte die Leistung des Dienstes wiederum verlangsamen, da jedes Mal das gesamte Postfach des Benutzers nach Aktivitäten durchsucht werden muss.

Ich würde empfehlen, IDLE zu verwenden, da es mit minimalen Ressourcen (auf Serverseite) läuft und effektiv für jegliche Aktualisierungen ist. Vergessen Sie nicht, die Verbindung vom Client-Ende vor Ablauf von 30 Minuten zu trennen (Timeout-Wert, es sind verschiedene Probleme bekannt).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X