/// <summary> /// 监视主节点是否存活 /// 主节点退出 从节点全部结束进程。进程监视 broker /// </summary> public static void MonitorIsMasterCenterAlive() { //RunningLocker.CreateNewLock().CancelAfter(1000); lock (_locker) { if (_isInit == true) { return; } _timer_supervisor_main.Elapsed += (s, e) => { try { var mainProcess = System.Diagnostics.Process.GetProcessById(GlobalContext.MainProcessId); if (mainProcess == null) { //主进程都已经退出,那么残留的进程都没有意义 AppBroker.TerminalApplicationProcess(); } } catch (Exception ex) { AppBroker.TerminalApplicationProcess(); Common.Logging.Logger.Error(ex); } }; _timer_supervisor_main.Start(); _isInit = true; } }