protected ReliableMqttClient(ILogger logger, IMqttFactory factory, TConfiguration configuration, IHostApplicationLifetime applicationLifetime) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } _foreverJitter = new ForeverJitter(TimeSpan.FromSeconds(1), 10, TimeSpan.FromSeconds(60)); _jitterBackoff = new JitterBackoff(_foreverJitter); Logger = logger; ApplicationLifetime = applicationLifetime; Client = factory.CreateMqttClient(); Options = configuration.GetOptions(); Configuration = configuration; _policy = Policy.Handle <MqttCommunicationException>() .WaitAndRetryAsync(_foreverJitter); }
public JitterBackoff(ForeverJitter foreverJitter) { _source = foreverJitter; }