Можно ли реализовать наблюдаемый шаблон, имеющий потоки в качестве наблюдателей, и если это так, то это хорошая идея? - PullRequest
0 голосов
/ 05 июля 2011

Я разрабатываю систему на Java, которая будет извлекать из базы данных электронные письма, ожидающие отправки, и загружать их во временный буфер.Всякий раз, когда электронные письма обнаруживаются в буферах, идея состоит в том, чтобы использовать шаблон наблюдателя / наблюдаемого для уведомления серверов SMTP.Дело в том, чтобы каждый сервер работал в отдельном потоке, а все потоки наблюдали за буферами.если кто-то может помочь мне понять, как реализовано, я был бы признателен.Я уже использовал шаблон наблюдателя ранее, но никогда не работал с многопоточностью.

надеюсь, кто-то может мне помочь, так как я много искал в Интернете, но я не смог найти ответы

1 Ответ

0 голосов
/ 05 июля 2011

Это в основном идея ExecutorService . Вы создаете службу исполнителя, поддерживаемую одним или несколькими потоками (пул потоков), и отправляете задачи этой службе исполнителя. Задачи хранятся в очереди, из которой поток (ы) службы-исполнителя принимает задачи, которые он должен выполнить. Когда очередь пуста, потоки ожидают появления новой задачи в очереди.

Вы можете иметь Map<SmtpServer, ExecutorService> и отправить все письма, которые вы нашли в базе данных, в соответствующую службу исполнителя. Используйте Executors для создания соответствующей реализации ExecutorService.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...