/// <summary> /// MQ回调 /// </summary> /// <param name="state"></param> private static void MQTimerCallBack(object state) { lock (locker) { if (isRunning) { return; } isRunning = true; } try { if (!MQLongConnectionProducer.IsAlive()) { //延迟5s,使其能够自动恢复 Thread.Sleep(5500); if (!MQLongConnectionProducer.IsAlive()) { if (_isFirstTimeToStartMq) { _isFirstTimeToStartMq = false; NLogHelper.Debug("首次尝试启动MQProducer"); MQLongConnectionProducer.StartProducer(); } else { NLogHelper.Warn("重启MQProducer"); MQLongConnectionProducer.StartProducer(); } } } } catch (Exception ex) { NLogHelper.Error("MQProducer定时器异常:" + ex); } finally { lock (locker) { isRunning = false; } } }
/// <summary> /// 关闭定时器 /// </summary> public static void Stop() { if (mqTimer != null) { try { mqTimer.Dispose(); mqTimer = null; } catch { } } //关闭MQ MQLongConnectionProducer.CloseProducer(); }