我在数据库中有几行。我创建了一个 Windows 服务,它每 5 分钟更新一次数据库中的新行。
现在我想跟踪新行,如果有的话,WCF 服务中......并向客户端发送通知。
数据库就是SQL Server,轮询数据库或者这个SQL依赖有什么办法呢?一个代码片段会有很大帮助
我在数据库中有几行。我创建了一个 Windows 服务,它每 5 分钟更新一次数据库中的新行。
现在我想跟踪新行,如果有的话,WCF 服务中......并向客户端发送通知。
数据库就是SQL Server,轮询数据库或者这个SQL依赖有什么办法呢?一个代码片段会有很大帮助
对于 5 分钟的更新频率,最好使用 Query Notifications(即。SqlDependency
)。有关示例,请参阅从 WCF 前端删除数据更改池。如果您使用 LINQ,那么您还可以使用LinqtoCache,它为 LINQ 查询提供 SqlDependency 支持的缓存失效。
在您的表中添加一个date
或datetime
(取决于您的 SQL Server 版本)字段,即“发送到客户端”日期。默认为NULL
.
为您的服务编写一个存储过程来调用它返回一个包含NULL
日期的所有行的结果集。在同一过程中,将所有 NULL 日期设置CURRENT_TIMESTAMP
为将它们标记为“发送到客户端”
根据需要经常轮询该过程。