Например:
DO
$$
DECLARE _id int;
BEGIN
UPDATE table SET data = data + 1 WHERE id = _id;
PARALLEL TASK START
-- very long operation recalc
PERFORM proc_exec_some_big_operation_recalc(_id);
-- redist inform, that data updated
PERFORM proc_inform_data_updated_apps(_id);
PARALLEL TASK END;
-- return immediate response as a result of the function
RETURN 'success';
END;
$$ LANGUAGE plpgsql;
Мне нужна эта функция по двум причинам: - когда требуется выполнить длинные операции преобразования данных, но должен быть возвращен результат функции (например, о изменение данных) немедленно - когда вы хотите уведомить многие приложения, чтобы сообщить, что данные изменились. Но в то же время вы должны быть уверены, что данные действительно записаны