我有一个 ASP .NET Web 服务,它利用来自客户端的长期连接。
- 客户端连接并等待 15 分钟以获取响应。
- 就在 15 分钟之前,ASP .NET Web 服务以 OK 响应。
- 客户端重复此连接建立。
在 15 分钟内,Web 服务检查 SQL 表中记录的字段值是否发生变化。如果该值更改,则立即使用 ReadMessage 向客户端发送响应。数据库的检查/轮询每 30 秒进行一次。这有几个缺点:
- 它的扩展性不好。它适用于 1 或 2 个客户端,但当您最终拥有 10,000 个客户端连接时,数据库将进行大量轮询。
- 这会导致处理延迟,因为最多可能需要 30 秒才能通知客户。
我想找到一种方法来通知事件 http 客户端的 Web 服务记录已更新。
还应注意,每个客户端连接到 Web 服务在表中都有其自己的特定记录。
最佳答案
我认为SqlDependency是你要找的。查询通知允许应用程序在查询结果更改时收到通知
关于sql - 防止 ASP .NET 页面必须轮询数据库以进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8218170/