如果阈值被破坏则发送电子邮件的触发器的建议

时间:2015-06-18 15:09:07

标签: asp.net-mvc sql-server-2008

这是一个相当广泛的问题,但我会尽力总结并尽力总结。

我有一个MVC前端,它显示/允许处理被归类为优秀的记录。我还有一个预定的控制台应用程序,它每晚运行,并尝试使用我写的一些逻辑来解析每个记录。

我有一项新要求,即每次未完成记录总数超过一定数量时都会发送一封电子邮件,此金额需要配置。

该表格将包含带有标记的每条记录,以表明它们是否已经解决,因此我需要计算未完成的记录,然后发送电子邮件以通知阈值是否已损坏。

我最初考虑过在插入时添加一个SQL Server触发器但是我很快意识到如果几天内没有添加更多记录但是总数仍然高于阈值,因为没有人解决它们,那么就不会发送更多的电子邮件。

我需要每天按照计划发送电子邮件,而不依赖于插入/更新。 所以现在我可能想到一个SQL Server作业,一个SSIS包甚至一个运行的服务,但我知道这个阈值数量需要是可配置的。

那么对我的要求来说最简单的解决方案是什么,只要它勾起所有方框,我就可以接受任何建议。

2 个答案:

答案 0 :(得分:1)

在我看来,SQL Server预定作业是最简单的方法 您可以在数据库中添加一个表,该表将保存阈值编号并从中读取它的值 在许多情况下,无论如何,GeneralParams表都是一件好事。

您提到的另一个选项(Windows服务)也可以通过多种方式进行配置:您可以使用GeneralParams表或服务的App.Config文件(但每次更改应用程序时都必须重新启动它)。配置),甚至是一个简单的文本文件。什么都可以。缺点是它在你的SQL服务器之外,但好处是它可能更容易发送电子邮件。

答案 1 :(得分:1)

鉴于OP已经有一个按计划运行的控制台应用程序,最合理的选择是简单地将此检查与电子邮件发送逻辑一起添加到控制台应用程序。无论如何,以这种方式发送电子邮件会更容易,特别是如果您使用像Postal这样的东西,这将允许您使用MVC风格的视图来创建您的电子邮件。