public bool Start(HostControl hostControl) { _hostControl = hostControl; try { ValidSettingsCheck(); foreach (var brs in bedrockServers.OrderByDescending(t => t.serverInfo.Primary).ToList()) { _hostControl.RequestAdditionalTime(TimeSpan.FromSeconds(30)); brs.CurrentServerStatus = BedrockServer.ServerStatus.Starting; brs.StartWatchdog(hostControl); Thread.Sleep(2000); } return true; } catch (Exception e) { InstanceProvider.GetServiceLogger().AppendLine($"Error Starting BedrockServiceWrapper {e.StackTrace}"); return false; } }
private void CronTimer_Elapsed(object sender, ElapsedEventArgs e) { try { if (cronTimer != null) { cronTimer.Stop(); cronTimer = null; } if ((string)InstanceProvider.GetHostInfo().GetGlobalValue("BackupEnabled") == "true" && shed != null) { Backup(); cronTimer = new System.Timers.Timer((shed.GetNextOccurrence(DateTime.Now) - DateTime.Now).TotalMilliseconds); cronTimer.Elapsed += CronTimer_Elapsed; cronTimer.Start(); } } catch (Exception ex) { _log.Error("Error in BackupTimer_Elapsed", ex); } }
public bool Stop(HostControl hostControl) { CurrentServiceStatus = ServiceStatus.Stopping; _hostControl = hostControl; try { foreach (var brs in bedrockServers) { brs.CurrentServerStatus = BedrockServer.ServerStatus.Stopping; while (brs.CurrentServerStatus == BedrockServer.ServerStatus.Stopping) { Thread.Sleep(100); } } return true; } catch (Exception e) { InstanceProvider.GetServiceLogger().AppendLine($"Error Stopping BedrockServiceWrapper {e.StackTrace}"); return false; } }
private static void Program_Exited(object sender, EventArgs e) { InstanceProvider.GetServiceLogger().AppendLine("Program exit detected... shutting down!"); InstanceProvider.GetBedrockService().Stop(InstanceProvider.GetBedrockService()._hostControl); }