请您参考如下方法:
让我们称您的应用程序为“消费者”,另一个应用程序为“生产者”。
有多种方法,最适合的方法取决于您期望有多少记录、生产者和消费者。
- 对于少量记录、生产者和消费者实例,您可以向表中添加一个“ack”字段,并将
false作为默认值。新条目应将此字段设置为 false,以便其他应用程序可以在处理新条目后将“ack”设置为 true。 - 您可以将表用作队列,生产者实例在其中插入新记录,而消费者实例在复制到最终目标表后删除记录。
- 为了获得最大的可扩展性,您可以使用类似 AMQP 的东西管理消费者和生产者之间的沟通
请注意,任何涉及轮询数据库更改的算法都可能对底层 DBMS 造成沉重负担。
[更新]
来自van的建议:
Just for completeless of the possibilities: you could also use AFTER INSERT triggers to store either a flag or a TableName and a PrimaryKey of the newly inserted/updated row in some helper table, which your SA application would poll regularly. However, be careful as inserts from SA would also trigger the trigger. – van
