【问题标题】:Building a database table watcher构建数据库表观察器
【发布时间】:2013-04-17 17:26:18
【问题描述】:

我需要能够观察表的变化并在添加新记录时执行一些操作。

基本上我想做的是:

  • 查看表中的新记录。
  • 添加新记录后, 通过 SignalR 向所有连接的用户推送消息。

Windows 服务是解决此问题的最佳解决方案吗?

【问题讨论】:

  • 为什么不在数据库中有一个触发器为你做这件事?
  • 我可以从触发器调用我的 MVC 应用程序中的控制器和/或方法吗?

标签: c# asp.net-mvc windows-services signalr watch


【解决方案1】:

一个糟糕的想法是创建一个直接调用您的 Web 服务的 CLR 触发器。 我之前在紧要关头做过这个并且它有效,它只是不是超级快或好的做法。 但它有效。

【讨论】:

    【解决方案2】:

    您可以创建一个插入触发器来写入另一个表,例如NewData 或其他东西。然后,您可以创建一个服务(一个 Windows 服务就可以了),它会定期检查 NewData 表的写入情况。处理完NewData中的每一行后,可以删除该行,等待下一行。

    现在,如果您尝试通知已登录的用户,则必须使用一些 AJAX 或不断刷新页面中的功能,以查看服务器端发生的情况。

    【讨论】:

    • 丹,我倾向于 Windows 服务。至于通知登录用户,我打算尝试使用 SignalR。
    猜你喜欢
    • 2017-04-13
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2019-06-04
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多