private void HandleCheckTimer(object sender, EventArgs e) { DateTime thisTime = Stocks.ServerTime.GetRealTime(); if (thisTime.Hour < 10 || (thisTime.Hour == 18 && thisTime.Minute >= 45)) { Console.WriteLine("No Check is Made - Not a Trade Time"); return; } StocksConsistency consistency; try { consistency = CheckStocksConsistency(); Console.WriteLine(Stocks.ServerTime.GetRealTime().ToString() + ": Robot: Check Result - " + consistency); if (consistency == StocksConsistency.INCONSISTENT) { InformManager("Monitor: Stocks Interrupted", "Program stopped working. Will be restarted by Monitor"); RestartProcess("Stocks"); } ListenerConsistency listenerConsistency = CheckListenerConsistency(); Console.WriteLine(DateTime.Now.ToString() + ": Listener: Check Result - " + listenerConsistency); if (listenerConsistency != ListenerConsistency.CONSISTENT) { InformManager("Monitor: Listener Interrupted", "Cannot ping Listener. Will be restarted by Monitor"); RestartProcess("Listener"); } } catch (Exception) { InformManager("Monitor: Something went wrong", "Database Request Failed. User actions needed."); } }
static void Main(string[] args) { Monitor monitor = new Monitor(); Console.WriteLine("Monitor Started ..."); while (true) { string cmd = Console.ReadLine(); if (cmd.Equals("check stocks")) { StocksConsistency csy = monitor.CheckStocksConsistency(); Console.WriteLine(DateTime.Now.ToString() + ": Check Result - " + csy); if (csy != StocksConsistency.CONSISTENT) { Monitor.RestartProcess("Stocks"); } } else if (cmd.Equals("check listener")) { ListenerConsistency csy = monitor.CheckListenerConsistency(); Console.WriteLine(DateTime.Now.ToString() + ": Check Result - " + csy); if (csy != ListenerConsistency.CONSISTENT) { Monitor.RestartProcess("Listener"); } } else if (cmd.Equals("restart listener")) { Monitor.RestartProcess("Listener"); } else if (cmd.Equals("restart stocks")) { Monitor.RestartProcess("Stocks"); } else if (cmd.Equals("clear")) { monitor.ClearDB(); } else if (cmd.Equals("exit")) { return; } else { Console.WriteLine("Unknown command"); } } }