我正在努力解决问题。我有一个asp.net转发器,显示从sql server数据库获取的用户朋友的状态。
有些朋友可能在线,其中一些朋友可能在从数据库获取结果时离线,然后我可以离线/在线进行标记。现在我需要一种机制,当列表中的用户上线或离线时,我应该更新转发器中朋友的状态。 2
我得到的唯一想法是放置计时器并调用存储过程来获取朋友列表,每10秒检查一次他们的雕像,但这种机制有2个大问题
1-针对1个用户的数据库调用太多(每10秒左右1个数据库调用)..想象一下,如果该站点有10000个用户,我就无法使用此技术。 2 - 这种技术也很慢,因为我必须得到结果并循环遍历转发器中的每个用户并检查/更新他/她的状态......假设该站点有10000个用户
我在Facebook上看到他们在实时基础上这样做,我想要几乎相似的机制......我怎么能这样做?任何来自.net观点的代码或教程都将不胜感激
答案 0 :(得分:0)
你可以做一个sqldependency,当一行更新而不是一遍又一遍地敲击数据库时,它会“跳动”。推动系统而不是拉动系统。但话说回来,如果表格被很好地索引并且他们的统计数据是最新的,那么用(nolock)阅读并不昂贵。
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency.aspx