我的现状是,我有一个应用程序需要在数据库表中有新数据到达时得到通知。数据来自外部来源(我无法控制-这是唯一的集成选项)。当有新数据到达时,我的应用程序需要执行某些操作-基本上是查询新数据,处理它,将结果插入到本地表中等。
如果可能的话,我想避免轮询,因为数据预计是实时处理的。 也就是说,确保永远不会错过任何数据是第一要务。
我的问题:
- SqlDependency通常被认为是可靠的吗?
- 我需要担心竞态条件吗,例如我正在处理一个更改时另一个更改到达?
- 当数据库重新启动时会发生什么?我的应用程序能否恢复并再次开始接收更改,还是我需要一种故障转移计时器定期重新订阅通知?
- 我阅读的大多数文章都涉及SQL Server 2005。我使用的是SQL Server 2008 R2。 是否有比SqlDependency更喜欢的新技术?
- (编辑)还有,如果应用程序关闭了怎么办?我想我必须在启动时查询缺失的数据?