[英]Designing a Process Monitor Windows Service
我正在设计一个维护进程列表的 Windows 服务。 它可以在它们上运行任务。 例如 - 停止特定进程(在其列表中),重新启动特定进程,运行新进程并将其添加到列表中,等等。
This Windows Service is controlled by a web app, through a WCF service - the Windows Service runs a WCF service, and the web app connects to that WCF service. WCF 服务导出Restart(int id)
和Stop(int id)
等方法。
我有几个问题:
当进程意外关闭时(例如,由于内部错误),服务应该更新某个数据库中的值。 现在,要做到这一点,我只是有一个线程,它每 30 秒检查一次进程是否正在运行。
这是这样做的权利吗? 我应该使用Exit
事件吗?
当服务因任何原因关闭时,它维护的所有进程也将关闭。 这样做的正确方法是什么?
我正在考虑在调用服务的OnClose()
时遍历列表并终止所有进程。 问题在于OnClose()
事件并不总是被调用。 例如,如果服务意外关闭怎么办? 它不会调用OnClose()
。
我应该如何表示每个任务(例如 - 重新启动进程或停止进程)?
现在我正在使用System.Threading.Tasks
。 这是正确的方法吗?
该服务应该是高度可扩展的,并且错误最少。
谢谢。
为了在服务关闭时关闭进程,我认为以下步骤可以为您完成这项工作。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.