我有一个API,它将一行插入TableA,然后将N行插入TableB,并使用TableA.id设置外键。
在另一个脚本中,我使用LISTEN
来监听插入,但我只希望在整个查询完成后收到通知。我希望使用事务会对此有所帮助,但是NOTIFY
在等待所有查询成功的同时,仍会在执行它们的顺序中插入。
有没有人有解决方案?是否可以在两个不同的节点服务之间触发事件?
答案 0 :(得分:2)
使用pg-promise transaction插入所有数据,然后使用node-ipc在交易完成时向其他流程发送通知。
这是一个相当标准的解决方案,您不需要发明任何东西。在这种情况下使用LISTEN
是一个坏主意,它会消耗额外的连接,is known to be unreliable。