【问题标题】:suggested architecture\pattern to windows service which monitors and notify by mail for changes?向 Windows 服务建议架构\模式,该服务通过邮件监视和通知更改?
【发布时间】:2011-03-15 15:24:21
【问题描述】:

我想构建一个 Windows 服务,该服务将通知公司中的一些管理员数据库中的主要 BL 发生变化。有人可以建议如何构建它,它不需要维护并且以一种聪明的方式。 (就像在表中编写存储过程?)。我可以使用哪些技术?(比如 SQL 依赖?) 如果有人做过类似的事情,我很乐意听取建议......

【问题讨论】:

  • 什么数据库服务器?请提供品牌和版本。
  • 你能详细说明“主要的BL变化”吗?假设这是业务逻辑,但它目前是如何实现的?您是否在监控单个表等?
  • SQL server 2008。最重要的是服务的设计,主要是不开发任何时候有人想要新的规则改变
  • 没有。它不是重复的。主要的不是使用的技术,而是设计此类服务的方法,当客户希望监视未来的表\存储过程时,它将阻止未来的工作

标签: c# sql-server-2008 design-patterns architecture windows-services


【解决方案1】:

有 3 种基本模式可以做到这一点。

  1. 通知事件,正在更改的内容会引发事件“您好,有人更改了我”,然后您会捕获该事件。
  2. 轮询,客户询问数据库自从我上次问你发生了什么之后发生了什么。
  3. 网关,通过网关进行的所有更改,网关报告已进行的更改。

您选择哪一种取决于您可以使用的技术以及您需要以多快的速度了解变化的要求。

【讨论】:

    【解决方案2】:

    SQL Server 提供了很多方法来捕获更改(包括特定于数据和特定于架构)。请参阅更改数据捕获和其他主题,如 DDL 触发器、事件通知和 SQL 跟踪。在你的情况下,我认为是后面的 3 个主题。

    所有 3 种方法都应该能够在数据库范围甚至服务器范围内运行(这意味着您可以设置一次然后忘记它,因此应该满足您的免维护要求)。

    结合 SQL Server 的数据库邮件功能,您应该能够实现这一点,而无需求助于自定义 windows 服务。

    请注意... 人们认为这是一个好主意,但如果实施不正确,邮箱会充满垃圾邮件、垃圾邮件和更多垃圾邮件。提示:临时表操作。

    【讨论】:

      猜你喜欢
      • 2017-02-20
      • 1970-01-01
      • 2021-02-16
      • 2014-11-16
      • 2010-09-21
      • 1970-01-01
      • 2014-05-21
      • 2014-07-27
      • 1970-01-01
      相关资源
      最近更新 更多