Предусмотрено два способа постановки задач в очередь автономных транзакций, различающихся наличием обратной связи.
Функция pg_enqueue_autonomous_task возвращает статус добавления задачи в очередь,
что позволяет обработать ситуацию переполнения.
SELECT pg_enqueue_autonomous_task(
$$INSERT INTO user_activity_log (user_id, action)
VALUES (123, 'profile_view')$$
);
Результат:
true — задача успешно добавлена в очередь;
false — очередь переполнена или возникла ошибка.
Конструкция PRAGMA AUTONOMOUS_TRANSACTION не возвращает статус выполнения
и предназначена для сценариев, где допустима эпизодическая потеря задач при пиковых нагрузках.
PRAGMA AUTONOMOUS_TRANSACTION $$
INSERT INTO user_activity_log (user_id, action)
VALUES (123, 'profile_view')
$$;