static void Heartbeat(ServiceToBeat serviceType) { Thread.Sleep(TimeSpan.FromSeconds(10)); var rnd = new System.Random(); while (true) { try { // todo : heartbeat for each service in config if (serviceType == ServiceToBeat.Executor) { var executor = new ExecutionBrokerService.ExecutionBrokerServiceClient(); try { //Console.Write("{0} - ", DateTime.Now.ToString(TIME_FORMAT)); Indicators.IsBeating = true; executor.Update(); Indicators.IsBeating = false; //Console.WriteLine(DateTime.Now.ToString(TIME_FORMAT)); executor.Close(); } catch { Indicators.IsBeating = false; executor.Abort(); throw; } } else if (serviceType == ServiceToBeat.ResourceBase) { var resourceBase = new ResourceBaseService.ResourceBaseServiceClient(); try { resourceBase.GetResourceNames(); // only need to call to refresh resources, no need in result resourceBase.Close(); } catch { resourceBase.Abort(); throw; } } } catch (Exception e) { //Indicators.IsBeating = false; LogToConsole(e); Thread.Sleep(5000); } finally { //Indicators.IsBeating = false; Thread.Sleep(rnd.Next(TICK, TACK)); } } }
static void Heartbeat(ServiceToBeat serviceType) { Thread.Sleep(TimeSpan.FromSeconds(10)); var rnd = new System.Random(); while (true) { try { // todo : heartbeat for each service in config if (serviceType == ServiceToBeat.Executor) { var executor = new ExecutionBrokerService.ExecutionBrokerServiceClient(); try { //Console.Write("{0} - ", DateTime.Now.ToString(TIME_FORMAT)); Indicators.IsBeating = true; executor.Update(); Indicators.IsBeating = false; //Console.WriteLine(DateTime.Now.ToString(TIME_FORMAT)); executor.Close(); } catch { Indicators.IsBeating = false; executor.Abort(); throw; } } else if (serviceType == ServiceToBeat.ResourceBase) { var resourceBase = new ResourceBaseService.ResourceBaseServiceClient(); try { resourceBase.GetResourceNames(); // only need to call to refresh resources, no need in result resourceBase.Close(); } catch { resourceBase.Abort(); throw; } } } catch (Exception e) { //Indicators.IsBeating = false; LogToConsole(e); Thread.Sleep(5000); } finally { //Indicators.IsBeating = false; Thread.Sleep(rnd.Next(TICK, TACK)); } } }