Я достиг той точки, когда мне придется отправлять уведомления по электронной почте своим пользователям о любом событии, на которое они подписаны.Мой сервис невелик, но ничто не мешает ему стать единым целым, поэтому я хотел бы быть готовым.
В настоящее время я обрабатываю эти письма, используя отправителя почты Spring, довольно синхронно (собирая кучу подписчиков).адреса электронной почты из коллекции и отправка им писем) Однако можно увидеть, насколько непригодным может стать такой подход в ближайшее время.Таким образом, я стремлюсь к еще большему параллелизму.
Несколько потоков могут помочь в ситуации, если их не слишком много одновременно.Полагаю, мне понадобится что-то вроде очереди в памяти, которая могла бы отправлять пакеты писем через определенные промежутки времени, открывая новую ветку.Завершенные потоки будут собраны в пуле потоков и использованы повторно.
Предложения?Возможно, мой подход слишком сложен.Возможно, Spring уже предлагает способ облегчить блокировку и синхронизацию.Буду рад узнать.