【问题标题】:Web application + SQL server triggers / thresholdsWeb 应用程序 + SQL Server 触发器/阈值
【发布时间】:2015-10-02 22:54:56
【问题描述】:

我们有一个托管在 IIS 中的 Web 应用程序。在我们为应用程序服务的数据库中,我们有各种不同的数据值。我们正在尝试找出一种方法,如果某个数据值存在或超过阈值,则将电子邮件发送给客户。

通用示例: 假设我们有一张表格,其中列出了小部件及其“库存”数量。每当有人出售一个小部件时,这个数量价值就会被耗尽。我们想在小部件数量低于 5 时向经理发送电子邮件,并告诉他重新订购更多小部件。

我们不想让 sql 触发器在发生“耗尽”交易时检查数量。相反,我们需要某种类型的后台监控进程来定时检查小部件的级别。我们怎样才能做到这一点? Windows 服务/WinForm 应用程序? IIS 中内置的可以运行 ASP.net C# 代码的东西?

【问题讨论】:

标签: c# asp.net sql-server iis triggers


【解决方案1】:

基于轮询的监控应该是您最后的手段。它为一个简单的任务使用了太多的资源,而且大多数时候它只会看到它不是做任何事情的情况。当您的数据增长时,它甚至无法扩展。

相反,您应该专注于更改这些值的代码,然后立即采取行动。并且检查也会更轻松:只检查一项而不是全部,并且只检查一次,而不是每 x 秒/分钟/小时/...

除了架构方面的考虑,回答你的问题,正如乔纳森所说:任何可以读取数据库和发送电子邮件的东西都可以,但我会考虑使用 Windows 服务来完成这项工作,因为这就是它们的用途:后台作业一直在运行,与主机用户无关。您还可以获得一些额外的好处,例如自动启动和恢复选项。

【讨论】:

    【解决方案2】:

    任何可以读取数据库和发送电子邮件的东西都可以完成此操作 - 控制台应用程序、winforms 应用程序、Web 应用程序 - 这并不重要。

    监视值何时更改(是什么更改?Web 应用程序?)并让 那个 应用程序也发送通知可能更有效

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 2015-04-26
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      相关资源
      最近更新 更多