2012-04-27 65 views
1

我在请求对实现的建议最佳方法建议:基于C#的Windows服务实现

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

的情况是:

  1. 我们必须实现,这将在频繁的间隔显示器设置在MS SQL数据库表的监控守护进程(比如10秒),并确定所有关键条目。

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

3.So ACCT_USR_LIMIT_EXECEED : SomeName应联想到这应该是电子邮件发送或DB表更新查询执行或文件夹的大小测量或删除文件夹或本地硬盘驱动器等

清理一些文件的操作

现在要分析的关键条目数量应该是中等的,但它也有增加的余地。

我们如何达到这一点,我看到的可能性是,

  1. 咱们写监控一个Windows服务和调度行为,或
  2. 写两种不同的服务,一个监控和调度其分析MSMQ和其他服务以分派读取推送的相同MSMQ条目的动作。

将有一个单一的Windows服务将帮助我们?或什么是最好的方法。

请建议

+2

只是一个想法[偏离C#服务] - 为什么不使用Powershell这样的东西。有一个背景作业的概念,Powershell是一个强大的自动化工具来实现这样的管理操作。例如:http://www.sqlservercentral.com/blogs/cleveland-dba/2012/04/12/better-living-thru-powershell-update-statistics-in-parallel/ – 2012-04-27 13:35:06

+0

谢谢你的建议,我们会看到也是如此。和一些C#解决方案将有很大的帮助:) – Futur 2012-04-27 13:41:08

回答

2

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

+0

它会很高,不能被预测。假设整个设置是针对基于SaaS的门户来跟踪用户的使用情况。我无法确定它的大小。但是你认为MSMQ是最好的方法还是其他IPC? – Futur 2012-04-27 13:43:29

+0

好吧,如果没有估算,你确实处于困难的地位,但是对于你的情况,MSMQ是一个可行的解决方案。 – hyp 2012-04-27 13:52:54

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 

希望这有助于。

+0

我们意识到实施MSMQ和Windows服务实施。 – Futur 2012-04-27 14:00:08

+0

很酷。那么你可以忽略这个 – 2012-04-27 14:01:50

+0

Seesharp - 没关系:) ..你的信息总是会有帮助。 – Futur 2012-04-27 20:02:19