powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Обрыв долгоработающей С-процедуры
5 сообщений из 5, страница 1 из 1
Обрыв долгоработающей С-процедуры
    #32553754
Hordi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую.

Планирую написать серверную С-процедуру, которая будет обрабатывать данные из довольно больших таблиц. Соответственно по времени все это будет проходить достаточно долго + возможно будут открываться файлы и инфа будет сбрасываться в них.
Вызываться она будет из программы-клиента. Так вот, интересует, а что будет, если во время выполнения этой процедуры соединение с программой-клиентом оборвется(обрыв шнурка, принудительное закрытие соединения через PQfinish, выключение компа клиента или что угодно), в смысле - процедура будет продолжать работу или как?

Спасибо
...
Рейтинг: 0 / 0
Обрыв долгоработающей С-процедуры
    #32554081
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
будет ,пока не завершится.. а как завершится вывалиса ошибка.. да блин напиши функцию
aaa(){
sleep(10);
}
и посмотри что будет. а как функции сообщить что типа пора заканчивать кога клиент сказал PQFinish или disconnectнулся я так и не нашел..если что нибудь придумаешь или найдешь сообщи..буду благодарен
...
Рейтинг: 0 / 0
Обрыв долгоработающей С-процедуры
    #32554093
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть постгрес получит сигнал SIGPIPE? Если так, то в С-процедуре написать обработчик и делать, что вам захочется.
...
Рейтинг: 0 / 0
Обрыв долгоработающей С-процедуры
    #32554575
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неа,при обычном дисконнекте не получит, разве что когда данные клиенту начнет отсылать.. а это будет происходить скорее всего когда функция уже завершится
...
Рейтинг: 0 / 0
Обрыв долгоработающей С-процедуры
    #32555167
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут появилась идея правда не совсем красивая да и проверить надо.. вобщем приблезительно так:
делаеса вторая процедурка которая нужному Pidу(в котором крутица сишная процедурка) посылает сигнал какой-нибудь.. и выстовляет где-нибудь(таблица сиквенс и т.п.)время жизни сишной процедурке.. ( типа еще тебе работать 20 минут) соответвенно в клиэнте делаеш вызов сишной функции асинхронно.. и пока она не выполнится переодически (каждые 20 минут) вызываеш вторую процедурку по второму коннекту.. соответсвенно при аварийном дисконекте сишная функция будет крутица максимум 20 минут,секунд и т.п.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Обрыв долгоработающей С-процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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