c# - 最佳方法建议 : C# based Windows service implementation

标签 c# .net msmq

我正在请求实现建议

操作系统:Windows Server 2008 平台:ASP.NET、C# 数据库:MS SQL 2005

场景是:

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

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

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

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

我们如何解决这个问题,我认为有可能,

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

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

请建议

最佳答案

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

关于c# - 最佳方法建议 : C# based Windows service implementation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351307/

相关文章:

MSMQ 无法删除或清除队列

c# - SelectedIndexChanges 在 TextChanged 事件之前触发

c# - 使用 crm 早期绑定(bind)类的 linq to sql

c# - C# 中的 MSMQ COM API

msmq - 队列不存在或您没有足够的权限来执行操作

.net - 适用于 c/c++ 的 ReSharper

c# - 使用 msbuildworkspace 打开解决方案会给出没有详细信息的诊断错误

c# - 我可以在 Linux 上为 .NET Core (C#) 运行 SonarQube 代码分析吗?

c# - 在哪里加载数据以填充具有多个 poco 类的 View 模型

c# - WPF 祖先绑定(bind)