2

受信メールを処理するサーバー プロセスをプログラムしたいと考えています。これを行うには、1. ポーリングと 2. IMAP IDLE 機能を使用したメール プッシュの 2 つのオプションがあります。どちらも JavaMail で実行できます。全体を IMAP IDLE で実装しがちですが、信頼性に不安があります。サーバー プロセス 7x24 として実行されるため、サービスがそのまま残ったり、フリーズしたり、応答しなくなったりすると致命的です。

最後に問題は、IMAP IDLE 機能をサーバー プロセスに安全に実装できるか、または信頼性と安定性に関して、ポーリング アプローチの方が優れたソリューションであるかということです。

4

1 に答える 1

2

IMAP Idle は 24 時間年中無休で実行されません。通常、ほとんどすべてのメーラーには IDLE のタイムアウトが定義されており、30 分程度です。サーバーがそれを行わない場合、imap/ipad などのデバイスは大きなボトルネックになる可能性があります。他のクライアントは複数のインスタンスを同時にインスタンス化し、接続を閉じる場合と閉じない場合があります。IDLE タイムアウトがない場合、サーバーは非常に多くの未終了の無用な接続を積み上げて、システム全体を効果的に窒息させます。

ポーリングは良いオプションかもしれませんが、ユーザーのメールボックス全体をスキャンしてメール アクティビティを探す必要があるたびに、サービスの速度が低下する可能性があります。

(サーバーで)最小限のリソースで実行され、更新に効果的であり、30分前にクライアント側から接続を切断することを忘れないでください(タイムアウト値、さまざまな問題について聞いたことがあります)ので、IDLEを使用することをお勧めします

于 2013-03-06T10:37:31.813 に答える