我目前的情况是我有一个应用程序需要在新数据到达数据库表时得到通知。数据来自外部来源(我无法控制——这是唯一的集成选项)。当新数据到达时,我的应用程序需要采取某些操作——基本上是查询新数据、处理它、将结果插入本地表等。
如果可能的话,我想避免轮询,因为数据应该是实时处理的。也就是说,确保不会丢失任何数据是第一要务。
我的问题:
- SqlDependency 通常被认为是可靠的吗?
- 我是否需要关注竞争条件,例如当另一个更改到达时我正在处理一个更改?
- 当数据库重新启动时会发生什么?我的应用程序会恢复并再次开始接收更改,还是需要某种故障安全计时器来定期重新订阅通知?
- 我读过的大部分文章都是关于 SQL Server 2005 的主题。我使用的是 SQL Server 2008 R2。是否有比 SqlDependency 更受欢迎的新技术?
- (编辑)另外,如果应用程序出现故障怎么办?我想我必须在启动时查询丢失的数据?