事务完成后,PostgreSQL只能NOTIFY

时间:2016-03-18 00:48:23

标签: node.js postgresql

我有一个API,它将一行插入TableA,然后将N行插入TableB,并使用TableA.id设置外键。

在另一个脚本中,我使用LISTEN来监听插入,但我只希望在整个查询完成后收到通知。我希望使用事务会对此有所帮助,但是NOTIFY在等待所有查询成功的同时,仍会在执行它们的顺序中插入。

有没有人有解决方案?是否可以在两个不同的节点服务之间​​触发事件?

1 个答案:

答案 0 :(得分:2)

使用pg-promise transaction插入所有数据,然后使用node-ipc在交易完成时向其他流程发送通知。

这是一个相当标准的解决方案,您不需要发明任何东西。在这种情况下使用LISTEN是一个坏主意,它会消耗额外的连接,is known to be unreliable