1

我正在编写 ac# windows 服务,它将执行一些后台处理 - 基本上它是工作队列的消费者。

它不需要停机(停止处理新项目),如果确实停机,我需要得到通知。

对于 a) 确保此类服务尽可能可靠,以及 b) 在出现问题时发送通知,有哪些设计指南和注意事项?例如,我考虑过创建一个观察者线程,其唯一工作是确保工作线程仍在处理作业。

4

2 回答 2

1

您可以在这里做很多事情来帮助提高可靠性,以及衡量您是否拥有满足您需求的解决方案。

测试

首先,您所经历的测试过程需要非常可靠,测试那些“意外”情况、网络连接丢失等。确保您正在测试这些,并查看发生了什么。失败通知,可能有点“喜忧参半”。例如,如果您没有可用的网络连接,您就不能给自己发送电子邮件。

正确的代码设计

除了设置有效的测试场景之外,请确保您的代码尽可能防弹,因为您正在创建 Windows 服务,请确保您正在捕获、记录和处理所有可能的错误,就像错误冒泡一样取决于操作系统,您的服务将关闭。

监控

考虑进行监控,在我的日常工作中,我们使用了两种类型的监控,在某些情况下会在 Windows 事件日志中报告错误,并且 Microsoft MOM 用于通知我们环境中发生的任何/所有问题。我们使用的第二个进程是第二个计划作业,每 X 分钟验证关键作业处于“已启动”状态,如果它未处于已启动状态,它将重新启动它。不优雅,但它有效。

于 2010-04-06T14:38:47.070 回答
0

我认为您的系统管理员可能正在使用 MOM 和/或 Solar Winds 或其他一些监控应用程序来监控部署服务的机器并采取适当的措施(发送电子邮件、拨打电话 :)

于 2010-04-06T14:45:26.250 回答