private void monitoraCanal() { logger.Info("Iniciando monitoracao do canal incremental [" + channelConfig.ChannelID + "]"); long lastWatchDog = DateTime.UtcNow.Ticks; while (isRunning) { try { if (mktIncrProc != null && !mktIncrProc.IsAlive() && shouldMonitor) { string subject = "REINICIANDO CANAL [" + channelConfig.ChannelID + "]"; string msg = subject + "\r\n" + "reiniciando as " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss.fff"); logger.Warn(subject); if (DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.DayOfWeek != DayOfWeek.Saturday) { if (DateTime.Now.Hour >= ConstantesMDS.HORARIO_NOTIFICACAO_EMAIL_INICIO && DateTime.Now.Hour < ConstantesMDS.HORARIO_NOTIFICACAO_EMAIL_FIM) { MDSUtils.EnviarEmail(subject, msg); } } finalizaCanal(); Thread.Sleep(10000); iniciaCanal(); Thread.Sleep(10000); } else { TimeSpan ts = new TimeSpan(DateTime.UtcNow.Ticks - lastWatchDog); if (ts.TotalMilliseconds > 30000) { logger.Info("Canal [" + channelConfig.ChannelID + "] ativo"); lastWatchDog = DateTime.UtcNow.Ticks; } } } catch (Exception ex) { logger.Error("monitoraCanal(): " + ex.Message, ex); } Thread.Sleep(250); } }