예제 #1
0
 public ExternalApiStreamConnector(string apiUrl, IQueueMessageProducer producer, ILogger logger, CancellationToken cancellationToken = default(CancellationToken))
 {
     this.apiUrl            = apiUrl;
     this.producer          = producer;
     this.logger            = logger;
     this.cancellationToken = cancellationToken;
 }
예제 #2
0
        /// <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);
                }
            });
        }