static void Main(string[] args) { var configuration = new Configuration(); _kafka = new DestinationKafka(configuration.KafkaUrl); _propertySource = new SourcePropertyChanges(configuration.CacheUsername, configuration.CachePassword, configuration.PropertyCacheUrl); Task.Run(() => StartPolling(_propertySource, _kafka)); Console.WriteLine("Running..."); Console.ReadLine(); _interrupted = true; Console.WriteLine("Quitting..."); }
private static void StartPolling(IRecordSource source, DestinationKafka kafka) { while (_interrupted == false) { try { var index = kafka.GetStoredOffset(source.Topic); foreach (var batchEnumerable in source.Poll(index).Batch(500)) { var batch = batchEnumerable.ToList(); kafka.PostBatchAsync(batch); } Thread.Sleep(TimeSpan.FromMinutes(1)); } catch (Exception ex) { Console.WriteLine("Exception occured trying to post to topic:{0}. Expcetion:{1}", source.Topic, ex); } } }