powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запуск отложенных процедур
18 сообщений из 18, страница 1 из 1
Запуск отложенных процедур
    #39969335
ploop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется необходимость со стороны клиента запускать длительные обработки, которые могут выполняться от нескольких минут до нескольких часов. И тут встала проблема с обрывом связи, либо простым закрытием приложения пользователем. Так как сервер теряет связь с клиентом, процесс завершается.

Собственно вопрос: есть ли способы запустить транзакцию без связи с клиентом, чтобы она работала сама по себе, а со стороны клиента просто мониторить состояние?
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969344
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ploop
Имеется необходимость со стороны клиента запускать длительные обработки, которые могут выполняться от нескольких минут до нескольких часов. И тут встала проблема с обрывом связи, либо простым закрытием приложения пользователем. Так как сервер теряет связь с клиентом, процесс завершается.

Собственно вопрос: есть ли способы запустить транзакцию без связи с клиентом, чтобы она работала сама по себе, а со стороны клиента просто мониторить состояние?

скорее всего это нужно обыгрывать на стороне приложения.
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969347
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ploop
Имеется необходимость со стороны клиента запускать длительные обработки, которые могут выполняться от нескольких минут до нескольких часов. И тут встала проблема с обрывом связи, либо простым закрытием приложения пользователем. Так как сервер теряет связь с клиентом, процесс завершается.

Собственно вопрос: есть ли способы запустить транзакцию без связи с клиентом, чтобы она работала сама по себе, а со стороны клиента просто мониторить состояние?


Для java
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969350
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ploop
Имеется необходимость со стороны клиента запускать длительные обработки, которые могут выполняться от нескольких минут до нескольких часов. И тут встала проблема с обрывом связи, либо простым закрытием приложения пользователем. Так как сервер теряет связь с клиентом, процесс завершается.

Собственно вопрос: есть ли способы запустить транзакцию без связи с клиентом, чтобы она работала сама по себе, а со стороны клиента просто мониторить состояние?


между клиентским приложением и базой в такой ситуации надо промежуточный application server
который все это и реализует
вне зависимости от запущенности или нет клиентского приложения
а клиетское приложение напрямую в базу не пускать (можно хоть web based сделать для простоты).
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969358
ploop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman
скорее всего это нужно обыгрывать на стороне приложения.

Приложение, по задаче, работать не должно, оно запускает процесс и закрывается. Или с ним теряется связь.

Maxim Bogukмежду клиентским приложением и базой в такой ситуации надо промежуточный application server
Ясно. То есть стандартными средствами никак...
Maxim Bogukа клиетское приложение напрямую в базу не пускать
Ну какое досталось... переделать с наскока не выйдет.
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969361
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ploop

Maxim Bogukмежду клиентским приложением и базой в такой ситуации надо промежуточный application server

Ясно. То есть стандартными средствами никак...


Никак... база это не сервер приложений... если он видит что клиентский коннект отвалился - она закрывает обработку.
Функций сервера приложений в postgresql нет (и слава богу).
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969363
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ploop
mefman
скорее всего это нужно обыгрывать на стороне приложения.

Приложение, по задаче, работать не должно, оно запускает процесс и закрывается. Или с ним теряется связь.

Maxim Bogukмежду клиентским приложением и базой в такой ситуации надо промежуточный application server

Ясно. То есть стандартными средствами никак...
Maxim Bogukа клиетское приложение напрямую в базу не пускать
Ну какое досталось... переделать с наскока не выйдет.
Ну можно на пл-питон сделать процедуру, которая будет локально запускать отчет и писать его в "темповую" таблицу, или опять же через питон отправлять готовый отчет на почту.
Но это кривизна конечно.
Хорошо все сделать, да еще и элементарную безопасность учесть - работы не мало будет.
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969365
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk
ploop

пропущено...

Ясно. То есть стандартными средствами никак...


Никак... база это не сервер приложений... если он видит что клиентский коннект отвалился - она закрывает обработку.
Функций сервера приложений в postgresql нет (и слава богу).

ТС наверное имеет в виду что-то типо дбмс-шедулер в оракле.
Запустили, и отвалились, а она работает себе...
В принципе можно из через какой-либо постгресовый планировщик это реализовать.
Но это все равно не будут "стандартные средства"
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969372
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AFAIK для фоновых процессов можно попробывать использовать средства типа Job или Cron
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969376
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
AFAIK для фоновых процессов можно попробывать использовать средства типа Job или Cron

А как его(cron) запускать удаленно из приложения?
Только через untrusted language имхо.
А это "слегка" дыра в безопасности.
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969395
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например можно запустить и пусть работает, или всегда запускать раз в N секунд/минут
что бы что-то предлагать конкретное, нужно знать бизнес-задачу
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969408
ploop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman
Ну можно на пл-питон сделать процедуру, которая будет локально запускать отчет и писать его в "темповую" таблицу, или опять же через питон отправлять готовый отчет на почту.
Но это кривизна конечно.
Хорошо все сделать, да еще и элементарную безопасность учесть - работы не мало будет.

Да там не обязательно отправлять, просто дождаться завершения. Все результаты будут где надо. Но это костыль, делать на костылях я уже умею :)
Leonid Kudryavtsev Например можно запустить и пусть работает, или всегда запускать раз в N секунд/минут
что бы что-то предлагать конкретное, нужно знать бизнес-задачу
Бизнес-задача простая, вести расчёты. До полумиллиона клиентов, глубиной на несколько лет, со сложными зависимостями и вычисления по дням(!). Поэтому так долго. Задачи разовые, все текущие оптимизированы на приемлемое время работы. Ну и отчётность относительно долго может формироваться, просто из-за объёма.

Планировщики отпадают потому, что все действия должны производиться после загрузки данных, никакого расписания конечно же нет.

На счёт костылей ещё возникла идея: заметил, что расширение dblink (для кроссбазовых запросов), работая на посторонней БД, не отваливается при отсоединении клиента, вызвавшего его. Если его вызвать на своей же с принудительным коммитом, может и проскочит. Надо проверить.
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969413
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решение на уровне школьника, студента (по хорошему какие нибудь сообщения бы заюзать)
1. в одну табличку пишите флаг, что что-то надо делать
2. делаете процесс(или несколько) аналогичных Concurrent Manager'у в OeBS
2.1. из таблички заданий читаете. что нужно делать
2.2. делается
2.3. прогресс выполнения пишется в табличку "просто мониторить состояние"
2.4. результат работы пишется в табличку для результатов
3. фоновый процесс запускаете в фоне
хоть через командную строку Unix с &, хоть job'ом, хоть cron'ом, хоть еще как

Проблема с задачами "которые могут выполняться ... до нескольких часов", что когда пользователь запустить пару десятков таких задачь ))), то весь сервер или ляжет или встанет колом. IMHO & AFAIK

а поскольку пользователь обычно не думает о том, что на сервере его задание выполняется (хоть и медленно), ситуации когда пользователи позапускають 100500 копий одной и той же задачи - достаточно частые IMHO & AFAIK
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969422
ploop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
хоть через командную строку Unix с &, хоть job'ом, хоть cron'ом, хоть еще как

Как-то слишком мудрёно....

Leonid Kudryavtsev
Проблема с задачами "которые могут выполняться ... до нескольких часов", что когда пользователь запустить пару десятков таких задачь ))), то весь сервер или ляжет или встанет колом. IMHO & AFAIK

Это решается элементарно: если задача работает (процесс отслеживается или флаг стоит, вариантов масса) управление на интерфейсе делается неактивным.

Leonid Kudryavtsev
а поскольку пользователь обычно не думает о том, что на сервере его задание выполняется (хоть и медленно), ситуации когда пользователи позапускають 100500 копий одной и той же задачи - достаточно частые IMHO & AFAIK

Будем бить. Возможно даже ногами :)
Не, как выше сказал, это не проблема.

зы: запустил через dblink, закрыл консоль, пока работает.
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969431
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ploop

зы: запустил через dblink, закрыл консоль, пока работает.

ИМХО - это еще больший костыль чем процедура на pl
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969439
ploop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman ИМХО - это еще больший костыль чем процедура на pl
Такой же, но проще: делать ничего не надо, оно работает :) Только что завершилось, всё норм.
А над процедурой подумаю.
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969461
alexzaides
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запуск отложенных процедур
    #39969478
ploop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexzaides, интересно. Но опять же планировщик, "взводить" его на минуту от текущего времени и потом убирать? Тоже как-то... Но за интересное расширение спасибо.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запуск отложенных процедур
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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