Я хотел бы реализовать асинхронную отправку электронной почты в своем веб-приложении, когда пользователи регистрируются для новой учетной записи. Это так, что если есть проблема или задержка при отправке сообщения электронной почты (например, почтовый сервер выключен или сетевое подключение к почтовому серверу выполняется медленно), пользователь не будет продолжать ждать завершения отправки.Асинхронная обработка электронной почты в веб-приложении Java
Мое веб-приложение построено с использованием Spring и Hibernate для реализации JPA.
Какой бы лучший и надежный способ реализовать асинхронную обработку электронной почты в этом веб-приложении?
Я думаю о сохранении информации электронной почты в таблице базы данных, которая затем регулярно опросается запланированной задачей Quartz (http://www.opensymphony.com/quartz/) для обновлений и когда она находит новые неотправленные письма, она пытается их отправить.
Является ли это разумным способом реализации того, что я хочу?
Спасибо.
Edit:
Наиболее проголосовали ответ должен оставить отправку почты в качестве синхронного вызова, но то, что вызвало мое мышление, что асинхронный подход может быть лучшим в том, что я в настоящее время использую GMail как мой исходящей почты сервер (это для тестирования во время разработки), и я испытываю задержку в 25 секунд в ответ, когда мое приложение пытается отправить электронное письмо, когда возвращается функция отправки почты. Как вы думаете?
Проблема с этим подходом заключается в том, что я в настоящее время использую gmail как мой исходящий почтовый сервер (это для тестирования), и я испытываю задержку в 25 секунд в ответ, когда мое приложение пытается отправить электронное письмо, когда вызов функция отправки почты возвращается. Это то, что вызвало мое мнение о том, что асинхронный подход может быть лучшим. Как вы думаете? – JMM
@Denise Я согласен с асинхронным битом. Вы можете запустить фоновый поток в вашем Servlet Engine, который принимает «Сообщения» JavaMail из списка или вектора и выполняет обработку. –