/// <summary> /// 将获取到的消息重新发送到队列中, 根据配置, 可以转发到其他MQ队列, 也可以执行重试计数 /// </summary> protected void ReSendMQ() { if (CurrentMessage == null) { return; } if (string.IsNullOrEmpty(MyConfig.RetryAddress) == false) { //失败转发 try { MessageQueueTools.SendMessage(MyConfig.RetryAddress, CurrentMessage); } catch (Exception ex) { ThisLogger.Error(ex, MyConfig.RetryAddress, CurrentMessage.Body); } } else if (MyConfig.RetryCount > 0) { //失败重试 int TryTimes = 0; try { if (string.IsNullOrEmpty(CurrentMessage.Label) || int.TryParse(CurrentMessage.Label, out TryTimes) == false) { TryTimes = 0; } if (TryTimes < MyConfig.RetryCount) { TryTimes = TryTimes + 1; CurrentMessage.Label = Convert.ToString(TryTimes); MessageQueueTools.SendMessage(MyConfig.Address, CurrentMessage); } else { ThisLogger.Warn(new LogInfo("{0}超过重试计数({1})", CurrentMessage.Body, TryTimes)); } } catch (Exception ex) { ThisLogger.Error(ex, MyConfig.Address, CurrentMessage.Label); } } }
/// <summary> /// 记录访问日志 /// </summary> /// <param name="log"></param> public void Send(T log) { try { MessageQueueConfig mq = GetConfig(log); MessageQueueTools.SendMessage( mq.Address, log, string.Empty, new BinaryMessageFormatter()); } catch (Exception ex) { logger.Error(ex); } }
/// <summary> /// 记录访问日志 /// </summary> /// <param name="log"></param> public void Log(AccessInfo log) { try { MessageQueueConfig config = GetConfig(log); MessageQueueTools.SendMessage( config.Address, log, string.Empty, new BinaryMessageFormatter()); } catch (Exception ex) { logger.Error(ex); } }