private void PrepareTimeout(Exchange exchange, Message msg) { msg.MaxRetransmit = 0; TransmissionContext ctx = exchange.GetOrAdd <TransmissionContext>(_TransmissionContextKey, _ => new TransmissionContext(_config, exchange, msg, null, 0)); if (ctx.CurrentTimeout == 0) { ctx.CurrentTimeout = _nonTimeout; } _Log.Debug(m => m("Send request, timeout only")); ctx.Start(); }
private void PrepareRetransmission(Exchange exchange, Message msg, Action <TransmissionContext> retransmit) { TransmissionContext ctx = exchange.GetOrAdd <TransmissionContext>( _TransmissionContextKey, _ => new TransmissionContext(_config, exchange, msg, retransmit, _maxRetransmitCount)); if (ctx.FailedTransmissionCount > 0) { ctx.CurrentTimeout = (Int32)(ctx.CurrentTimeout * _ackTimeoutScale); } else if (ctx.CurrentTimeout == 0) { ctx.CurrentTimeout = InitialTimeout(_ackTimeout, _ackRandomFactor); } _Log.Debug(m => m("Send request, failed transmissions: {0}", ctx.FailedTransmissionCount)); ctx.Start(); }
private void PrepareRetransmission(Exchange exchange, Message msg, Action <TransmissionContext> retransmit) { TransmissionContext ctx = exchange.GetOrAdd <TransmissionContext>( TransmissionContextKey, _ => new TransmissionContext(_config, exchange, msg, retransmit)); if (ctx.FailedTransmissionCount > 0) { ctx.CurrentTimeout = (Int32)(ctx.CurrentTimeout * _config.AckTimeoutScale); } else if (ctx.CurrentTimeout == 0) { ctx.CurrentTimeout = InitialTimeout(_config.AckTimeout, _config.AckRandomFactor); } if (log.IsDebugEnabled) { log.Debug("Send request, failed transmissions: " + ctx.FailedTransmissionCount); } ctx.Start(); }