Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Механизм выполнения длительных заданий / 9 сообщений из 9, страница 1 из 1
21.03.2012, 14:28:41
    #37715819
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
Добрый день, коллеги.
Хотел посоветоваться. Тонкий клиент. Пользователь запускает процедуру генерации отчета. Генерация может занимать довольно большое время. При этом пользователь должен иметь возможность работать дальше с приложением. По окончанию генерации отчета у пользователя в интерфейсе появляется сообщение-popup с предложением загрузить сформированный отчет по указанной ссылке.

Как я вижу простейший вариант реализации - когда пользователь запрашивает генерацию отчета, на сервере создается отдельный, ответственный за это поток. Пользователь в это время может работать дальше - посылать запросы, получать ответы - все как обычно. Факт окончания формирования отчета отображается в сессии пользователя и интерфейс отрабатывает это таким образом, что пользователь видит ссылку на файл сформированного отчета.
Описанный сценарий реализации - то что первое пришло на ум. Скорее всего так и реализую.
Но хотелось бы услышать мнение других, какую-нибудь другую реализацию или готовые решения для запуска долгоиграющих заданий?

Спасибо :-)

PS: JMS для этих нужд не хочу использовать, не хочу сильно перегружать логику.
...
Рейтинг: 0 / 0
21.03.2012, 14:52:05
    #37715880
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
Ну, всё верно. Единственные две проблемы, которые нужно решить, это как управлять потоками на сервере (JMS, Spring, ExecutorService, Work Manager) и как информировать юзера - COMET, AJAX+Timer
...
Рейтинг: 0 / 0
21.03.2012, 15:05:41
    #37715914
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
rabiter,
если глянуть вокруг, то есть решение попроще - без клиенской части.
Это очёты из веб-телеф.провайдера MTS.
ВИ
- сформировал параметры отчёта и _заказал его_
- получил информацию где его искать "по готовности" и примерное время.
- сам заходишь, хоть с сотового и берём свой отчёт
...
Рейтинг: 0 / 0
21.03.2012, 15:06:33
    #37715918
Michael Ponomarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
rabiter,

Сделали на ExecutorService, потом узнали о SpringBatch, но было поздно

Ради интереса ковыряли потом чуть SpringBatch показалось весьма удобно, жаль что не прикрутишь теперь :(
Советую посмотреть
...
Рейтинг: 0 / 0
21.03.2012, 15:49:10
    #37716013
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
rabiterНо хотелось бы услышать мнение других, какую-нибудь другую реализацию или готовые решения для запуска долгоиграющих заданий?
...
PS: JMS для этих нужд не хочу использовать, не хочу сильно перегружать логику.

- если используется EJB, то Using Asynchronous Method Invocation in Session Beans
...
Рейтинг: 0 / 0
21.03.2012, 17:37:50
    #37716315
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
DBMS_JOBS
...
Рейтинг: 0 / 0
22.03.2012, 13:55:39
    #37717845
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
BlazkowiczНу, всё верно. Единственные две проблемы, которые нужно решить, это как управлять потоками на сервере (JMS, Spring, ExecutorService, Work Manager) и как информировать юзера - COMET, AJAX+Timer

Спасибо за ответ. По поводу юзера - нам "повезло" мы работаем с JSF (ICEFaces). У них есть build-in механизм Ajax push.
...
Рейтинг: 0 / 0
22.03.2012, 13:57:33
    #37717852
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
KachalovrabiterНо хотелось бы услышать мнение других, какую-нибудь другую реализацию или готовые решения для запуска долгоиграющих заданий?
...
PS: JMS для этих нужд не хочу использовать, не хочу сильно перегружать логику.

- если используется EJB, то Using Asynchronous Method Invocation in Session Beans

Да, конечно. Как раз работаем с EJB (+CDI). @Asynchronous для запуска методов в новых потоках. И не надо никаких executor-ов и пулов потоков выдумывать. Все уже реализовано.
...
Рейтинг: 0 / 0
22.03.2012, 13:57:54
    #37717853
rabiter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Механизм выполнения длительных заданий
Michael Ponomarevrabiter,

Сделали на ExecutorService, потом узнали о SpringBatch, но было поздно

Ради интереса ковыряли потом чуть SpringBatch показалось весьма удобно, жаль что не прикрутишь теперь :(
Советую посмотреть

Спасибо за наводку :-)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Механизм выполнения длительных заданий / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]