public static void ComputeState() { WatchNodeCache.Init(); foreach (TaskListItem _item in Tasks.Values) { if (_item.TaskRunResult != null) { switch (_item.TaskCheckType) { case "SYSTEM": WatchNodeCache.CurrentState.SystemState = Math.Max(WatchNodeCache.CurrentState.SystemState, _item.TaskRunResult.StateFlag); break; case "DATABASE": WatchNodeCache.CurrentState.DatabaseState = Math.Max(WatchNodeCache.CurrentState.DatabaseState, _item.TaskRunResult.StateFlag); break; case "APPLICATION": WatchNodeCache.CurrentState.ApplicationState = Math.Max(WatchNodeCache.CurrentState.ApplicationState, _item.TaskRunResult.StateFlag); break; case "INTERFACE接口": WatchNodeCache.CurrentState.InterfaceState = Math.Max(WatchNodeCache.CurrentState.InterfaceState, _item.TaskRunResult.StateFlag); break; case "TASK": WatchNodeCache.CurrentState.TaskState = Math.Max(WatchNodeCache.CurrentState.TaskState, _item.TaskRunResult.StateFlag); break; } } } }
static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //清理主状态缓冲区 WatchNodeCache.Init(); try { //启动WCF服务 ServiceHost WcfHost = new ServiceHost(typeof(SWCommandService)); WcfHost.Open(); if (args.Length == 0) { #if DEBUG Application.Run(new frmServiceMain()); #else System.ServiceProcess.ServiceBase[] ServicesToRun; ServicesToRun = new System.ServiceProcess.ServiceBase[] { new SysWatchService() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun); #endif } else if (args[0].ToLower() == "/f" || args[0].ToLower() == "-f") { Application.Run(new frmServiceMain()); } } catch (Exception ex) { EventLogSystemLog _log = new EventLogSystemLog("SinoSysWatchServiceLog"); _log.WriteLog(ex.Message, EventLogEntryType.Error); } }
public void Init(IServerApplication app, bool isWinSvc) { // 发出开始启动服务提示音 application = app; IsWinSvc = isWinSvc; application.WriteMessage("服务开始启动!", EventLogEntryType.Information); SessionClass.CurrentSinoUser = new SinoUser(); SessionClass.CurrentSinoUser.CurrentPost = new SinoPost(); SessionClass.CurrentSinoUser.CurrentPost.PostID = "0"; WatchNodeCache.Init(); // 启动任务服务 application.WriteMessage("初始化任务服务!", EventLogEntryType.Information); InitTask(); application.WriteMessage("任务服务初始化完成!", EventLogEntryType.Information); }