コード例 #1
0
ファイル: TestPublisher.cs プロジェクト: fakefeik/KafkaClient
        public static void Main(string[] args)
        {
            TopicName = Config.TopicName;
            var numRecords = 50000000L;
            var recordSize = 100;
            try
            {
                TopicName = args[1];
                numRecords = long.Parse(args[1]);
                recordSize = int.Parse(args[2]);
            }
            catch (Exception)
            {
                Log.Warn($"Default values were used. \n\ttopicName={TopicName}\n\tnumRecords={numRecords}\n\trecordSize={recordSize}");
            }

            var tasksPerIteration = 1000;
            var iterationsCount = numRecords/tasksPerIteration;
            var payload = new string(Enumerable.Range(0, recordSize).Select(x => 'A').ToArray());
            var tasks = Enumerable.Range(0, tasksPerIteration).Select(x => new XTask { Description = payload }).ToArray();
            var stats = new Stats(numRecords, 5000);
            for (int i = 0; i < iterationsCount; i++)
            {
                var sendStart = DateTimeExtensions.CurrentTimeMillis();
                var cb = stats.NextCompletion(sendStart, payload.Length, stats).Times(tasksPerIteration);
                Publish(tasks, cb);
            }
            stats.PrintTotal();
        }
コード例 #2
0
ファイル: TestPublisher.cs プロジェクト: fakefeik/KafkaClient
 public Action NextCompletion(long start, int bytes, Stats stats)
 {
     Action cb = () =>
     {
         var iter = _iteration;
         long now = DateTimeExtensions.CurrentTimeMillis();
         int latency = (int) (now - start);
         stats.Record(iter, latency, bytes, now);
     };
     _iteration++;
     return cb;
 }