| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > JSP отправка сообщения о выполнении задачи |
| Автор: Shall 24.2.2012, 15:39 |
| Здравствуйте уважаемые гуру! В общем суть проблемы такая: Есть JSP/Servlet сайт, расположенный у меня на localhost, на нем регистрируются пользователи и создают списки событий, у которых указано время их выполнения. Нужно сделать так, чтобы при наступлении события на почту пользователя было отправлено сообщение о выполнении события. Никак не могу понять, как сделать чтобы на сервере всегда (в фоновом режиме) работала функция, которая проверяет, произошло ли событие у какого-нибудь пользователя и отправляла бы этому пользователю сообщение, т.е. функция которая работает не по запросу клиента, а всегда при работе сервера. Мне сейчас не важен процесс отправки сообщений, мне главное понять как заставить сервер делать что-нибудь (хотя бы в консольку выводить текст) по таймеру. Как просто работать с таймером знаю. Нашел такую штуку ServletContextListener, может через неё? Если да, то подскажите как с ней работать Использую NetBeans + Tomcat (все последних версий) |
| Автор: danilych 24.2.2012, 16:07 |
| для этих целей лучше использовать quartz - http://quartz-scheduler.org/ |
| Автор: Shall 24.2.2012, 16:13 | ||
Кварц, насколько я знаю это класс в духе TaskSchedullera, а мне нужно понять, как запустить на сервере, в фоновом режиме какую-нибудь функцию, которая что-нибудь бы выполняла, без запроса клиента. А все остальное потом прикручу. |
| Автор: COVD 24.2.2012, 18:21 |
| Вам надо, чтобы при старте вашего веб-приложения стартовал поток ( или таймер ). Для этого надо создать класс, имплементирующий javax.servlet.ServletContextListener, и указать его в web.xml. В Нетбинсе для этого можно открыть web.xml и в секции General->Web Application Listeners добавить полное название класса. При старте приложения в обьекте класса сработает метод contextInitialized, на выходе - contextDestroyed. В первом случае вы запускаете поток или таймер, во втором - останавливаете. |
| Автор: Shall 24.2.2012, 19:57 | ||
Спасибо, значит буду копать в сторону ServletContextListener |
| Автор: COVD 24.2.2012, 21:48 | ||
именно при старте |
| Автор: Molodec 3.3.2012, 14:50 |
| Спасибо. Мне тоже будет полезно. |
| Автор: COVD 3.3.2012, 18:23 |
| именно при старте приложения. Старт приложения - это вы кладете war в папку webapps. Остановка приложения - удаляете war из папки webapps. Сам сервер может при этом продолжать работать. Разумеется, это также работает, если вы стартуете или останавливаете сам сервер. Например, когда IDE запускает или останавливает веб-сервер при запуске или остановке веб-приложения. |