我正在编写一个c# windows服务,它将执行一些后台处理--基本上它是一个工作队列的使用者。
它不需要宕机(停止处理新项目),如果它真的宕机了,我需要得到通知。
对于a)确保这样的服务尽可能可靠,以及b)在出现问题时发出通知,有哪些设计准则和考虑事项?例如,我曾考虑创建一个监视器线程,它的唯一任务是确保工作线程仍在处理作业。
发布于 2010-04-06 22:38:47
您可以在这里做许多事情来帮助提高可靠性,以及衡量您的解决方案将满足您的需求。
测试
首先也是最重要的是,你所经历的测试过程需要是一个非常可靠的过程,测试那些“意外”的情况,网络连接的丢失等。确保你正在测试这些情况,并看看发生了什么。失败时的通知,可能有点“好坏参半”。例如,如果您没有可用的网络连接,就不能给自己发电子邮件。
正确的代码设计
除了设置有效的测试方案之外,还要确保您的代码是可靠的,因为您正在创建一个windows服务,请确保您正在捕获、记录和处理所有可能的错误,就像在操作系统中出现错误一样,您的服务将会崩溃。
监控
考虑使用监视功能,在我的日常工作中,我们使用了两种类型的监视功能,在某些情况下会在Windows事件日志中报告错误,而Microsoft MOM则用于通知我们环境中发生的任何/所有问题。我们使用的第二个进程是第二个调度作业,它每隔X分钟验证一次关键作业是否处于“已启动”状态,如果它未处于已启动状态,它将重新启动它。不是很优雅,但它很管用。
发布于 2010-04-06 22:45:26
我认为您的系统管理员可能正在使用MOM和/或Solar Wind或其他监控应用程序来监控部署了服务的计算机,并采取适当的措施(发送电子邮件、振铃电话:)
https://stackoverflow.com/questions/2585615
复制相似问题