0

データベースから送信待ちの電子メールを取得し、それらを一時バッファにロードするJavaでシステムを開発しています。電子メールがバッファで検出されるたびに、observer/observable パターンを使用して smtp サーバーに通知します。ポイントは、各サーバーを異なるスレッドで実行し、すべてのスレッドがバッファーを監視することです。誰かが実装方法を理解するのを手伝ってくれるなら、私はそれを感謝します。以前にオブザーバー パターンを使用したことはありますが、マルチスレッドでは使用したことがありません。

私はインターネットでたくさん検索していたので、誰かが私を助けてくれることを願っていますが、答えが見つかりませんでした

4

1 に答える 1

0

これは基本的にExecutorServiceの考え方です。1つまたは複数のスレッド(スレッドプール)に基づくエグゼキューターサービスを作成し、このエグゼキューターサービスにタスクを送信します。タスクはキューに格納され、そこからエグゼキュータサービスのスレッドが実行する必要のあるタスクを取得します。キューが空の場合、スレッドは新しいタスクがキューに表示されるのを待ちます。

Map<SmtpServer, ExecutorService>を持っていて、データベースで見つけたすべてのメールを適切なエグゼキュータサービスに送信することができます。Executorsを使用して、ExecutorServiceの適切な実装を作成します。

于 2011-07-05T19:25:52.763 に答える