|
|
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
Хочу посоветоваться. Нужно в WEb приложении создать объект-сервис-демон, который бы не зависимо от запросов клиента, периодически обрабатывал логику. Например, клиент нажал кнопку о выполнении действия, окончания которого клиенту ждать не обязательно. В таблицу записалась команда, которую должен подхватить другой фоновый процесс (сервис), которым обрабатывается команда. Сначала, я написал внешний сервис-демон, который периодически обращался к СУБД, получал и обрабатывал задания, а также принимал срочные вызовы через RMI сосок прямо из контроллера. Минусы данного варианта - разные JRE у Web приложения и "Сервиса". В следующей итерации, я поместил сервис внутрь Web приложения. Это был Thread внутри Web. Минусы -, я так и не понял как останавливать этот поток внутри Web сервиса (Tomcat), потом, некоторые ошибки приводили к остановке потока и для перезапуска приходилось пере стартовать всё Web приложение. В третьей итерации я опять вынес сервис из Web приложения :). И теперь наступила очередь 4-ой итерации и думаю как организовать этот сервис, внутри или снаружи Web приложения ? Условия работы сервиса. 1) Сервис должен периодически, выполнять некие задания не зависимо от клиентских запросов. 2) Клиентские запросы могут "будить" сервис, чтобы обработать некое задание и периодически проверять обработан запрос или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 11:28 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
Spring Scheduler Quartz Executors.newScheduledThreadPool Запуск\Шатдаун привязать к ServletContextListener либо вручную, либо средствами самого фреймверка. Если у вас Exception не обрабатывается и приводит к остановке scheduler-a, то это проблемы реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 14:03 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
главное, не забыть принять во внимание кое-что ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 14:29 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
chpashaглавное, не забыть принять во внимание кое-что Это в полном JEE стеке. Если используется томкат, то вряд ли что-то ещё кроме сервлетов. Где менеджить ресурсы по потокам особо незачем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 14:32 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
Blazkowiczchpashaглавное, не забыть принять во внимание кое-что Это в полном JEE стеке. Если используется томкат, то вряд ли что-то ещё кроме сервлетов. Где менеджить ресурсы по потокам особо незачем. ну у меня например в томкэте jndi на бд внутри спрингового шедулера не работало. без дальнейших телодвижений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 14:50 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
странно что не посоветовали jms, хотя и кварца по идее должно хватить с головой в принципе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 15:36 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2013, 03:27 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
Шаров Сергей , в некоторых веб-фреймворах (GAE, DropWizard, etc) сервисные демоны/вызовы - это обычные обработчики http-запросов, которые выполняются, если запрос, к примеру, происходит с определенного адреса (к примеру, 127.0.0.1) или по определенному порту. Поэтому на сервере достаточно будет настроить задачи в cron'е для генерации http-запросов по определенным URL'ам сервера и этого будет достаточно для решения многих задач. Если же на сервере используется Spring, то уже всё есть из коробки - @Async, @Scheduled... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2013, 03:32 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
chpasha, У меня Spring, Hibernate. Так вот не работает аннотация Код: java 1. . Причём когда запускаю из Spring Tool Suite (Eclipse), всё прекрасно работает. Разворачиваю war файл на tomcat, неработает. Подскажи может у тебя та же проблема была. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 15:37 |
|
||
|
Tomcat, Web приложение и свои потоки
|
|||
|---|---|---|---|
|
#18+
я уже не помню, что у меня было, а что нет. на данный момент гарантированно рабочим является следующий конфиг spring Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. tomcat Код: xml 1. 2. 3. 4. в мавен (или так) нужны эти две либы Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. вот таким макаром нет никаких проблем ни с jndi-lookup из "своих" потоков (шедулера например) ни с чем бы то ни было еще. disclaimer: это тот способ, который для меня первым заработал правильно во всех аспектах. не исключено, что существуют более элегантные/простые решения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 16:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38246647&tid=2127177]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
190ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
3ms |
| others: | 234ms |
| total: | 527ms |

| 0 / 0 |
