1

我要求提供实施建议

操作系统:Windows server 2008 平台:ASP.NET,C# DB:MS SQL 2005

场景是:

  1. 我们必须实现一个监控守护进程,它将以频繁的时间间隔(比如 10 秒)监控 MS SQL 中的一组数据库表并识别所有关键条目。

  2. 分析后的条目将根据其重要性或类别与一些操作相关联。所以假设一个关键条目将被表示为ACCT_USR_LIMIT_EXECEED : SomeName

3.SoACCT_USR_LIMIT_EXECEED : SomeName应与一个动作相关联,该动作应是电子邮件发送或数据库表更新查询执行或文件夹大小测量或删除文件夹或清理本地硬盘中的某些文件等。

到目前为止,要分析的关键条目的数量应该是适中的,但它也有增加的空间。

我们如何处理这个问题,我看到了可能性,

  1. 我们是否应该编写一个 Windows 服务来监视和调度操作,或者,
  2. 编写两个不同的服务,一个监视并将其分析分派给 MSMQ,另一个服务分派读取推送的同一 MSMQ 条目的操作。

拥有一个单一的 Windows 服务会对我们有帮助吗?或者什么是最好的方法。

请建议

4

2 回答 2

2

我认为这完全取决于预期的发货量。如果您要每秒进行 2000 次调度,那么我认为分离是一个好主意,因此一个服务不会影响另一个服务,您可能为每个服务拥有一个单独的环境(服务器)。如果预期数量是每分钟 10 次,那么我不明白为什么要让它变得复杂,一些线程和适当的业务层就可以了。

于 2012-04-27T13:37:37.677 回答
2

对此没有直接的答案,因为它取决于很多参数。我同意“Hyp”所说的。正如你所说,一些 C# 解决方案将有很大帮助- 所以,从技术上讲,如果你想实现这个 Windows 服务/MSMQ 的东西,那么你可以看看这里 -

http://stackoverflow.com/questions/1521841/receiving-msmq-messages-with-windows-service
http://stackoverflow.com/questions/3956467/how-to-create-a-c-sharp-listener-service-for-msmq-as-a-windows-service

希望这可以帮助。

于 2012-04-27T13:56:07.523 回答