У меня есть сервлет, который отправляет несколько писем на разные адреса, когда клиент запрашивает его.
Поскольку отправка почты занимает много времени, клиент должен ждать, пока не получит ответ. Я хочу обрабатывать отправку писем асинхронно, чтобы быстрее отправить ответ клиенту.
Также отправка писем может быть отложена до нескольких минут и не должна быть в реальном времени.
Я не хочу сохранять какую-либо информацию в БД и хочу обрабатывать ее только внутри приложения. Решение, которое приходит мне в голову, выглядит следующим образом:
Когда клиент запрашивает этот сервлет, сервлет добавит список рассылки и содержимое в качестве атрибута в ServletContext и отправит ответ обратно клиенту.
Иметь вспомогательный сервлет, который загружается при запуске, и создавать поток таймерной задачи, который выполняется через каждые (скажем) 10 минут, читать атрибуты servletcontext, отправлять письма и удалять атрибут.
Пожалуйста, предложите, если это хорошее решение. Также предложите лучший вариант, если он есть.