|
|
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
Коллеги, если кто может проконсультируйте пожалуйста... Нужно реализовать следующий функционал: запуск по команде некоторой очень продолжительной задачи на сервере(точнее задач - их может быть несколько и разных), которая может выполняться несколько дней (например импорт некоторых данных объем которых измеряется гигабайтами, а их источник располагается на внешнем сервере). Пользователь должен иметь возможность запустить задачу, приостановить задачу, возобновить исполнение ранее приостановленной задачи, завершить ранее запущенную задачу, а также в любой момент времени получить информацию о состоянии запущенной на исполнение задачи (проще говоря узнать процент ее исполнения и, например - количество ошибок). Предполагается, что это веб-приложение запущенное на томкате В принципе я вполне способен реализовать всю эту бодягу самостоятельно, но может кто уже изобрел этот велосипед и оформил его в виде какого нибудь легковесного фреймворка? Может кто посоветовать чего нибудь на сей счет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 14:56 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
Можно через Persistent Message Queue разруливать. Процесс подымает сообщение. Восстанавливает из него состояние задачи. Исполняет квант задачи и помещает новое состояние обратно в очередь. Прогресс\промежуточный результат можно мониторить по сообщениям и по данным в БД привязаным к сообщению. Кванты должны быть достаточно жирными, чтобы не дорого было откатить квант задачи и чтобы очередь слишком часто не беспокоить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 15:15 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМожно через Persistent Message Queue разруливать. Процесс подымает сообщение. Восстанавливает из него состояние задачи. Исполняет квант задачи и помещает новое состояние обратно в очередь. Прогресс\промежуточный результат можно мониторить по сообщениям и по данным в БД привязаным к сообщению. Кванты должны быть достаточно жирными, чтобы не дорого было откатить квант задачи и чтобы очередь слишком часто не беспокоить. Я наверное не очень корректно выразился - вопрос как именно сохранить и восстановить состояние задачи он не является здесь самым главным - я могу просто определить методы записи/чтения состояния в файл или в БД... А очередь сообщений в любой ее реализации она как бы не для того придумана... Хотя конечно так как вы описали вполне работает... Только это не намного проще чем просто взять и написать фреймворк для такой задачи Но в любом случае спасибо... Я пока Spring Batch просматриваю... Но может чего попроще есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 15:51 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
nikovaysviridov Но может чего попроще есть... А какие сложности в том чтобы создать Application scope bean, в котором будет ConcurrentHashMap с процентом выполнения. Задача работает, ну хоть в AsyncServlet и отчитывается периодически в bean. Другие запросы проверяют bean. Зачем тут фреймворк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 16:01 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньевnikovaysviridov Но может чего попроще есть... А какие сложности в том чтобы создать Application scope bean, в котором будет ConcurrentHashMap с процентом выполнения. Задача работает, ну хоть в AsyncServlet и отчитывается периодически в bean. Другие запросы проверяют bean. Зачем тут фреймворк? Сложностей никаких - просто это будет означать написание собственного фреймворка... Вы ведь не предлагаете конечному пользователю приложения самостоятельно создавать свой собственный "Application scope bean, в котором будет ConcurrentHashMap с процентом выполнения"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 16:37 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
nikovaysviridovСложностей никаких - просто это будет означать написание собственного фреймворка... Вы ведь не предлагаете конечному пользователю приложения самостоятельно создавать свой собственный "Application scope bean, в котором будет ConcurrentHashMap с процентом выполнения"? так вы разработчик или конечный пользователь? вам что нужно то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 16:43 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
DDivernikovaysviridovСложностей никаких - просто это будет означать написание собственного фреймворка... Вы ведь не предлагаете конечному пользователю приложения самостоятельно создавать свой собственный "Application scope bean, в котором будет ConcurrentHashMap с процентом выполнения"? так вы разработчик или конечный пользователь? вам что нужно то? Я разработчик, который разрабатывает приложения, предназначенные для использования конечными пользователями. А нужно то, что я описал в первом посте - наверное не очень внятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 16:52 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
nikovaysviridovЯ пока Spring Batch просматриваю... Но может чего попроще есть... Не думаю: http://stackoverflow.com/questions/1434274/what-alternatives-exist-to-spring-batch-to-handle-queued-jobs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 16:57 |
|
||
|
Persistent Tasks
|
|||
|---|---|---|---|
|
#18+
BlazkowicznikovaysviridovЯ пока Spring Batch просматриваю... Но может чего попроще есть... Не думаю: http://stackoverflow.com/questions/1434274/what-alternatives-exist-to-spring-batch-to-handle-queued-jobs Видимо вы правы. Есть конечно вот такие решения: https://github.com/dreambrother/jpjq но это уж совсем примитив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2014, 17:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38785836&tid=2126400]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 477ms |

| 0 / 0 |
