赋予服务复生的超能力-亚博网站有保障的

发布时间:2021-02-13    来源:亚博网站有保障的 nbsp;   浏览:82160次
本文摘要:来自面试官的灵魂一问在上一篇文章《在服务中添加暂停和恢复特性》中,我们乐成赋予了服务暂停和恢复的能力。

来自面试官的灵魂一问在上一篇文章《在服务中添加暂停和恢复特性》中,我们乐成赋予了服务暂停和恢复的能力。支持暂停和恢复为啥需要服务自我掩护?服务,会7x24小时长时间运行,短则半个月,长则半年!那么在如此长时间内,如何保证服务的稳定运行?如何制止服务不挂掉呢!我知道可能有很牛B的法式员就说了,劳资的法式,就是能保证7x24小时不挂机!咋地,劳资不需要这个。或许真的有这样的大神也纷歧定!可是我们大多数法式员还是普通人,要做到让服务长时间运行而不堕落,真的很是难题!至少外老师做不到这一点!固然我从来不为此而沮丧,因为我有其他解决问题的措施。

现在我们要说的服务的自我掩护,就是其中的一种方法。此外另有类似方法,如守护历程等等。

亚博网站有保障的

在后面的文章中,我们也会讨论守护历程的方法。实现机制其实windows为我们提供了这样的机制,windows自己,是可以监测服务异常退出的,而且可以自动为我们重启服务。

我们打开服务的属性:打开服务属性然后切换到【恢复】页面,可以看到,windows为我们提供了第一次,第二次,另有更多次的失败之后的处置惩罚选项。其中处置惩罚的计谋就有重启服务。服务的重启机制所以我们只要设置好服务的恢复属性,就可以做到服务的自动重启了。这种机制,还可以检测到服务的历程被Kill掉的情况!厉害了!强制竣事也能重启服务自行退出触发重启有时候,我们需要让服务强制重启。

亚博网站有保障的

好比服务内部发生某种严重错误,无法继续运行。或者说服务中有网络毗连,可是经由长时间的运行,发生了网络异常,无法恢复。这些情况下,我们让服务自动退出,然后再使用上文提到的服务重启机制,可以实现服务的重启。

在盘算机世界内里,重启大法,往往可以解决80%的问题。这里就是使用重启大法来解决问题。在C#中退出历程,我推荐大家使用【Environment.Exit(1);】。其中的参数1表现非正常退出。

下面我把日志改为追加模式,利便视察服务的执行情况,同时将服务的代码举行简朴的修改:执行5次自动退出服务的执行情况如下:自动重启乐成此外,经由外老师测试,使用【Environment.Exit(0);】退出服务,也可以触发服务的重启操作!其效果和【Environment.Exit(1);】是一样的。下期预告守护历程守护服务敬请期待。

下一篇文章《给服务配上一个守护者-守护历程》,接待校阅!。


本文关键词:亚博网站有保障的

本文来源:亚博网站有保障的-www.mbwdc.com