0

我有两个应用程序:App#1 e App#2。它们使用 Oracle DB 交换数据,即 App#1 将数据写入表中,而 App#2 从中读取数据。有多个表,但每个表中只有一个应用程序具有写入权限,另一个应用程序读取数据并在读取后删除它们,所以我认为我没有任何数据完整性问题。

如何检查新数据?我正在考虑的唯一解决方案是每 X 秒对表进行一次轮询。

4

2 回答 2

1

不要使用数据库。使用消息系统,例如EasyNetQ

如果您不能这样做,那么您的下一个最佳选择是将触发器添加到表中,并让这些触发器更新状态表。App2 然后只需要轮询一个表以进行更改。

可以使用Continuous Query NotificationDatabase Change Notification。然后应用程序被通知更改并且不需要轮询。

如果您无法更改数据库,那么您几乎无法让 App2 定期轮询所有表以进行更改。

于 2013-11-08T11:02:15.083 回答
0

我会建议以配置的时间间隔轮询数据库,以便更好地控制。

并在成功处理 MyData 中接收的数据后立即创建两组表,例如 MyData 和 MydataProcessed,将该记录移动到 MydataProcessed,这使得对 MyData 表的轮询变得精简,并且您仍然在 MydataProcessed 表中拥有完整的数据交换历史记录。

于 2013-11-08T11:56:28.930 回答