最佳方法建议:基于C#的Windows服务实现

时间:2012-04-27 13:14:56

标签: c# .net msmq

我在

中请求实施建议

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

情景是:

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

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

  3. 3.因此,ACCT_USR_LIMIT_EXECEED : SomeName应与电子邮件发送或数据库表更新查询执行或文件夹大小测量或删除文件夹或清理本地HDD等中的某些文件的操作相关联。< / p>

    截至目前,待分析的关键条目数量应适中,但也有增加的余地。

    我们如何处理这个问题,我发现可能性是,

    1. 我们应该编写一个用于监视和调度操作的Windows服务,或者
    2. 编写两个不同的服务,一个用于监控并将其分析发送到MSMQ,另一个服务用于调度读取相同MSMQ条目的操作。
    3. 拥有单一的Windows服务会对我们有所帮助吗?或者最好的方法是什么。

      请建议

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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

希望这有帮助。