2011-07-05 12 views
0

私は送信待ちの電子メールをデータベースから取得するシステムを開発し、一時バッファーにロードします。電子メールがバッファ上で検出されるときはいつでも、オブザーバ/観測可能なパターンを使用してsmtpサーバに通知します。要点は、各サーバを別のスレッドで実行させ、すべてのスレッドがバッファを監視することです。誰かが私が実装する方法を理解するのを助けることができれば、私はそれを感謝するだろう。以前はオブザーバーパターンを使用していましたが、マルチスレッドでは使用しませんでした。私はインターネット上で多くのことを検索してきたので、スレッドをオブザーバとして持つ観測可能なパターンを実装することは可能でしょうか?もしそうなら、それは良い考えですか?

は、誰かが私を助けることができると思いますが、私は基本的にExecutorServiceのアイデアだ任意の答え

+0

各サーバーは別の*スレッド*または異なる*プロセス/マシン*で動作していますか? –

+0

私はサーバーごとに1つのスレッドを持っています – Ezequiel

答えて

0

を見つけるcouldntの。 1つまたは複数のスレッド(スレッド・プール)を使用するエグゼキュータ・サービスを作成し、このExecutorサービスにタスクをサブミットします。タスクは、Executorサービスのスレッドが実行する必要のあるタスクを取得するキューに格納されます。キューが空の場合、スレッドは新しいタスクがキューに現れるのを待ちます。

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

関連する問題