|
|
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Есть приложение на томкате крутится, само приложение на Vaadin. Нужно запускать в определенное время, например в 10 утра метод. Попробовал сделать через таймер, ну то есть запускать его раз в 2 минуты, делать проверку текущего времени и если оно равно +- 1 минута 10 часов утра, то запускаться. Но! Привязал это дело на запуск UI интерфейса, то есть при запуске пользователем приложения, при заходе по ссылке на приложение оно начинает работу. Дык вооот... Он запускается не один раз, даже находясь в конструкторе. Я понимаю, что это совсем неправильный подход. Вопрос - где и что использовать для решения подобной задачи? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 12:35:57 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, то есть все же его "копать".. уже подключил к проекту, но что-то... в общем ладно, позже отпишу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 12:42:11 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Nixic, что мешает завести флаг - индикатор запущенности приложения, и не запускать его второй раз если флаг поднят? (манипуляции с флагом окружить synchronized блоком). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 13:50:15 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Nixic, если таймер Вас всем устраивает и единственная проблема множественные запуски, то вариант от rfq будет работать, а еще можно все это повесить на ServletContextListener. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 15:30:09 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Всем спасибо! Разобрался с quartz scheduler'ом. Отличная вещь! Особенно то что надо это его CronTrigger. Синтаксис, конечно, непривычный, но возможности очень радуют! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 14:44:54 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Единственное, что не касается самого кварца, не могу понять как его запускать при старте приложения. Пока сделал так, что приходится заходить на страничку сервлета, чтобы шедуллер запустился. То есть прописал его маппинг в web.xml Наверное это особенности Vaadin.... Просто получается, что в качестве первой страницы в маппинге у меня прописано /* Ну то есть вот: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Сервлет с кварцом прописал так же, только урл пришлось сделать таким <url-pattern>/scheduler/*</url-pattern> То есть пока не зайдешь на страничку с этим окончанием, шедуллер не будет запущенным. А заходить каждый раз после деплоя неправильно. Подскажите, куда его прописать, чтобы запускался сразу после старта томкат. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 14:51:16 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Либо свой ContextListener прописать и в нем инициировать. Либо если сервлет то прописать <load-on-startup>, чтобы инициализация сервлета была при деплойменте, а не при первом обращении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 14:54:10 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Отлично! Спасибо большое! Все работает! Код: xml 1. 2. 3. 4. 5. Осталось только допилить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 15:40:10 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
всё правильно. Кроме того, если не хочется завязываться с дополнительными библиотеками, то можно и обычным таймером обойтись (scheduleAtFixedRate). А вто как это запускается: web.xml Код: xml 1. 2. 3. 4. 5. 6. java: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Если в методе contextDestroyed не остановить таймер, то он переживет редеплой, и таймеры размножатся - в результате утечка + загадочные срабатывания :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 15:41:09 |
|
||
|
Шедулер
|
|||
|---|---|---|---|
|
#18+
Я делаю через анотацию Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. В контекст апликейшин надо добавить Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ну и апп пропертиез само собой Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2013, 21:19:31 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38495314&tid=2128006]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
212ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 558ms |

| 0 / 0 |
