|
|
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Добрый день! Помогите советом или примером. Есть web-приложение, которое запускается через TomCat. Пользователи используют web-приложение по мере необходимости. В web-приложение пользователи вносят некие мероприятия и устанавливают сроки исполнения их. Мне нужно добавить в web-приложение функционал, который бы отправлял электронное сообщение на почтовый адрес пользователя при наступлении срока исполнения мероприятия. Как отправить сообщение на почтовый адрес в сети более или мания описано. Но не отказался бы от рабочего примера. Не понятно как контролировать момент отправки сообщения (например: проверять срок каждый пол дня), если приложения запускается по необходимости, а не крутится целый день. TomCat запущен всегда. Не судите строго. Если что то не понятно, пишите, напишу подробней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 17:39 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Konstantin_dзапускается по необходимости, а не крутится целый день. либо - новое приложение и оно крутится целый день для проверки "Наступило" либо - есть пакеты в БД делающие то же самое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 18:01 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Konstantin_d, Ключевое слова Scheduler и Timer Quartz Scheduler - то что хорошо интегрируется в JEE контейнер cron - системный, не зависит от вашего сервера Windows Task Scheduler - системный, не зависит от вашего сервера ScheduledExecutorService - можно использовать, но возможны утечки при редеплое java.util.Timer - тоже чреват косяками и вообще не удобен EJB Timer Service - его нет в томкате, только отдельной либой ставить Spring Scheduler - тоже всякое умеет, легко менять реализацию скедулера, нужен Spring В идеале расписание же нужно персистить. Поэтому остаётся Quartz и системные скедулеры. И опять же и то и другое надо синхронизировать с записями в БД. С другой стороны нафига нужна точность? Нафиг не нужна. Запускаем любой Job с переодичностью в N минут, делаем выборку мероприятий с фильтрацией по времени и по результату отправляем письма. С таким подходом можно любой из вышеописаных скедулеров прикрутить. Но в этом случае системные уже становятся совсем не удобными. Выбирать вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 18:03 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
BlazkowiczScheduledExecutorService - можно использовать, но возможны утечки при редеплое. это решаемо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 23:09 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Спасибо за информацию. Буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2015, 15:52 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Решил использовать Quartz Scheduler. Посмотрел примеры, интегрировал в своё приложения планировщик. Планировщик работает, только с ошибками при старте. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. У меня в приложении используется log4j который пишет в БД. Получается Quartz Scheduler пытается с log4j работать? Как это отключить или настроить. Подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 17:26 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Konstantin_dПолучается Quartz Scheduler пытается с log4j работать? может это Планировщик запускает приложение, а приложение работает с логгером? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 17:34 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Petro123Konstantin_dПолучается Quartz Scheduler пытается с log4j работать? может это Планировщик запускает приложение, а приложение работает с логгером? ))по стектрейсу видно кто использует логгер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 17:54 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
При выполнении конструкции Код: java 1. появляются данные ошибки. И в логах (те что я через log4j пиши в БД) есть информация от Quartz Scheduler. Если не использовать Quartz Scheduler, ошибок нет. Как сделать, чтобы Quartz Scheduler не писал через используемый в моём приложении log4j? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2015, 17:28 |
|
||
|
Отправка электронного сообщения пользователю при наступлении срока
|
|||
|---|---|---|---|
|
#18+
Konstantin_dКак сделать, чтобы Quartz Scheduler не писал через используемый в моём приложении log4j? Можно просто Appender для него прописать отдельный и писать в файл, а не базу. Странная вообще глобальная конфигурация, которая не работает. Судя по стеку Quartz пишет в Commons Logging. Значит и его можно сконфигурять в нужный вам log. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2015, 17:37 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39133565&tid=2124534]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
132ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 401ms |

| 0 / 0 |
