【问题标题】:Best Approach Suggestion: C# based Windows service implementation最佳方法建议:基于 C# 的 Windows 服务实现
【发布时间】:2012-05-08 05:47:54
【问题描述】:

我要求在

中提出实施建议

操作系统:Windows 服务器 2008 平台:ASP.NET,C# 数据库:MS SQL 2005

场景是:

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

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

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

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

我们如何解决这个问题,我看到了可能性,

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

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

请推荐

【问题讨论】:

  • 只是一个想法 [偏离 C# 服务] - 为什么不使用 Powershell 来处理这些东西。有后台作业的概念,Powershell 是实现此类管理操作的强大自动化工具。例如:sqlservercentral.com/blogs/cleveland-dba/2012/04/12/…
  • 感谢您的建议,我们也会看到的。一些 C# 解决方案将有很大帮助:)

标签: c# .net msmq


【解决方案1】:

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

【讨论】:

  • 会有点高,无法预测。假设整个设置是用于基于 SaaS 的门户来跟踪用户使用情况。我不能确定它的大小。但是您认为 MSMQ 是最佳方法还是其他任何 IPC?
  • 好吧,如果没有估计,您确实处境艰难,但是在您的情况下,MSMQ 是一个可行的解决方案。
【解决方案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

希望这会有所帮助。

【讨论】:

  • 我们知道实现 MSMQ 和 Windows 服务实现。
  • Seesharp - 没关系 :).. 你的信息总是有帮助的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-16
  • 2015-11-28
  • 1970-01-01
  • 2014-03-10
相关资源
最近更新 更多