public ExternalApiStreamConnector(string apiUrl, IQueueMessageProducer producer, ILogger logger, CancellationToken cancellationToken = default(CancellationToken)) { this.apiUrl = apiUrl; this.producer = producer; this.logger = logger; this.cancellationToken = cancellationToken; }
/// <summary> /// Publishes summary message (aggregated info about topic) every interval /// </summary> public void StartPublishingAggregatedEvents() { Task.Factory.StartNew(() => { while (true) { Thread.Sleep(_publishingIntervalInMiliseconds); if (_stopPublishing) { _messageProducer = null; return; } var producerMessage = GetSummaryMessage(); _messageProducer.ProduceMessage(producerMessage); } }); }