예제 #1
0
        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();
        }
예제 #2
0
        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);
        }