2016-03-18 3 views
1

У меня есть API, который вставляет строку в таблицу A, а затем вставляет N строк в TableB с набором внешних ключей из TableA.id.PostgreSQL только NOTIFY после завершения транзакции

В другом скрипте я использую LISTEN для прослушивания вставок, но я хочу получать уведомления только после завершения всего набора запросов. Я надеялся, что использование транзакций поможет в этом, но NOTIFY, ожидая, пока все запросы будут успешными, будут по-прежнему вставляться в том порядке, в котором они были выполнены.

У кого-нибудь есть решение? Возможно ли инициировать события между двумя различными службами узлов?

ответ

2

Вставьте все данные с помощью pg-promise transaction, а затем используйте node-ipc, чтобы отправить уведомление другому процессу, когда транзакция завершена.

Это довольно стандартное решение, вам не нужно ничего изобретать. И использование LISTEN в этом случае - плохая идея, он будет потреблять дополнительное соединение и is known to be unreliable.

+0

Спасибо. Вероятно, это лучшее решение. – Prisoner

Смежные вопросы