public override void Run() { _startSignal.WaitOne(); var sw = new Stopwatch(); var numDone = 0; sw.Start(); while (_running) { while (UsersQueue.TryDequeue(out User user)) { KafkaConnection.ToProduceBytes.Enqueue(Serializer.Serialize <User>(user)); numDone++; if (numDone >= NumExpected) { _running = false; } } _startSignal.WaitOne(); Thread.Sleep(100); } sw.Stop(); Log.WriteLogInfo($"{numDone} messages serialized in {sw.ElapsedMilliseconds} ms."); _countdownEvent.Signal(); }
static List <byte[]> AvroSerializeMessages(List <User> users, AvroSerializer serializer, Logger log, ref Stopwatch sw) { sw.Reset(); log.WriteLogInfo("Avro serializing messages"); sw.Start(); List <byte[]> msgs = new List <byte[]>(); foreach (var user in users) { msgs.Add(serializer.Serialize <User>(user)); } sw.Stop(); log.WriteLogInfo($"Avro Serialization took {sw.ElapsedMilliseconds} ms."); return(msgs); }