0

次のように動作するアプリケーションがあります。

  1. トランスポート プロバイダーとの接続を開きます。
  2. できるだけ早く大量のメッセージを送信します。
  3. トランスポート プロバイダーとの接続を閉じます。

私が見つけたのは、トランスポート スレッドに対してアプリケーションの動作が速すぎるということです。トランスポート スレッドが前のメッセージで終了する前に次のメッセージに移動するため、メッセージが失われてしまいます。この問題を (一時的に) 解決するために、1 つのメッセージの開始と次のメッセージの作成の間に 2 秒間の一時停止を入れることにしました。しかし、これは受け入れられません!私が必要としているのは、トランスポート スレッドがメッセージの処理を完了したとき (つまり、同期操作が必要なとき) を判断するために待機できる、ある種のセマフォです。

誰かそのようなことを知っていますか?

4

1 に答える 1

1

トランスポート同期です。

「メッセージが見つからない」とはどういう意味ですか? トランスポートはメッセージが送信されたと (例外なく) 言っているにもかかわらず、メッセージが宛先に届かないということですか? これは、メール サーバーのバグを示している可能性があります。

JavaMail の FAQ で説明されているように、セッションのデバッグを有効にして、メール サーバーとの会話の中に期待どおりに動作しない理由を示すものがないかどうかを確認してみてください。

于 2012-09-20T17:19:35.840 に答える