|
|
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги. Хотел посоветоваться. Тонкий клиент. Пользователь запускает процедуру генерации отчета. Генерация может занимать довольно большое время. При этом пользователь должен иметь возможность работать дальше с приложением. По окончанию генерации отчета у пользователя в интерфейсе появляется сообщение-popup с предложением загрузить сформированный отчет по указанной ссылке. Как я вижу простейший вариант реализации - когда пользователь запрашивает генерацию отчета, на сервере создается отдельный, ответственный за это поток. Пользователь в это время может работать дальше - посылать запросы, получать ответы - все как обычно. Факт окончания формирования отчета отображается в сессии пользователя и интерфейс отрабатывает это таким образом, что пользователь видит ссылку на файл сформированного отчета. Описанный сценарий реализации - то что первое пришло на ум. Скорее всего так и реализую. Но хотелось бы услышать мнение других, какую-нибудь другую реализацию или готовые решения для запуска долгоиграющих заданий? Спасибо :-) PS: JMS для этих нужд не хочу использовать, не хочу сильно перегружать логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2012, 14:28:41 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
Ну, всё верно. Единственные две проблемы, которые нужно решить, это как управлять потоками на сервере (JMS, Spring, ExecutorService, Work Manager) и как информировать юзера - COMET, AJAX+Timer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2012, 14:52:05 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
rabiter, если глянуть вокруг, то есть решение попроще - без клиенской части. Это очёты из веб-телеф.провайдера MTS. ВИ - сформировал параметры отчёта и _заказал его_ - получил информацию где его искать "по готовности" и примерное время. - сам заходишь, хоть с сотового и берём свой отчёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2012, 15:05:41 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
rabiter, Сделали на ExecutorService, потом узнали о SpringBatch, но было поздно Ради интереса ковыряли потом чуть SpringBatch показалось весьма удобно, жаль что не прикрутишь теперь :( Советую посмотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2012, 15:06:33 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
rabiterНо хотелось бы услышать мнение других, какую-нибудь другую реализацию или готовые решения для запуска долгоиграющих заданий? ... PS: JMS для этих нужд не хочу использовать, не хочу сильно перегружать логику. - если используется EJB, то Using Asynchronous Method Invocation in Session Beans ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2012, 15:49:10 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
DBMS_JOBS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2012, 17:37:50 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНу, всё верно. Единственные две проблемы, которые нужно решить, это как управлять потоками на сервере (JMS, Spring, ExecutorService, Work Manager) и как информировать юзера - COMET, AJAX+Timer Спасибо за ответ. По поводу юзера - нам "повезло" мы работаем с JSF (ICEFaces). У них есть build-in механизм Ajax push. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2012, 13:55:39 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
KachalovrabiterНо хотелось бы услышать мнение других, какую-нибудь другую реализацию или готовые решения для запуска долгоиграющих заданий? ... PS: JMS для этих нужд не хочу использовать, не хочу сильно перегружать логику. - если используется EJB, то Using Asynchronous Method Invocation in Session Beans Да, конечно. Как раз работаем с EJB (+CDI). @Asynchronous для запуска методов в новых потоках. И не надо никаких executor-ов и пулов потоков выдумывать. Все уже реализовано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2012, 13:57:33 |
|
||
|
Механизм выполнения длительных заданий
|
|||
|---|---|---|---|
|
#18+
Michael Ponomarevrabiter, Сделали на ExecutorService, потом узнали о SpringBatch, но было поздно Ради интереса ковыряли потом чуть SpringBatch показалось весьма удобно, жаль что не прикрутишь теперь :( Советую посмотреть Спасибо за наводку :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2012, 13:57:54 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37717845&tid=2132248]: |
0ms |
get settings: |
17ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
3ms |
| others: | 344ms |
| total: | 536ms |

| 0 / 0 |
