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;
            }
        }
Exemplo n.º 4
0
 private static void Program_Exited(object sender, EventArgs e)
 {
     InstanceProvider.GetServiceLogger().AppendLine("Program exit detected... shutting down!");
     InstanceProvider.GetBedrockService().Stop(InstanceProvider.GetBedrockService()._hostControl);
 }