Я в настоящее время использую Кварцевый Планировщик для асинхронных задач, таких как отправка электронного письма, когда исключение происходит, посылая электронное письмо от веб-интерфейса, или периодически анализируя трафик.
Я должен использовать очередь сообщений для отправки электронного письма? Это больше эффективно или корректно, чтобы сделать это тот путь? Подход планировщика работает просто великолепно.
Если я использую очередь, и электронной почте не удалось отправить, для очереди действительно ли возможно повторить отправку электронного письма в более позднее время? Подход очереди выглядит более простым, чем планировщик для задач, которые должны сразу произойти, но для задач планировщика, планировщик все еще, если нет больше очереди, чем я знаю.
Я еще не использовал JMS, таким образом, это - то, что я считал.
Walter
Они действительно разные, и это зависит от цели и частоты отправки электронного письма. Планировщик генерирует событие, зависящее от времени, а затем запускает некоторый код для отправки электронного письма. {{1} } Очередь не может инициировать событие, ей нужно, чтобы в нее откуда-то было помещено сообщение, а затем MessageListener отправил электронное письмо.
Чтобы ответить на ваш вопрос, очередь - хороший инструмент для отправки электронного письма, если
Планировщик может запускать некоторый Java-код с определенным интервалом и, следовательно, генерировать временные события. Если вы хотите отправлять периодические электронные письма, то планировщик - это то, что вам нужно.
Если вы используете планировщик, он должен поместить сообщение в очередь. Если нет, то вам нужно, чтобы какой-то другой триггер поместил сообщение в очередь.
Я согласен с Томом в том, что такую асинхронную связь лучше всего осуществлять через очередь. Что работает как модель публикации-подписчика, следуя шаблону наблюдателя.
Очередь была бы более естественным выбором для отправки таких вещей, как электронная почта. Кварц можно втиснуть в него, но это неестественно, когда вы делаете такие вещи, как повторная попытка. Планировщик лучше всего подходит для того, что следует из названия - задач, которые должны выполняться периодически.