示例#1
0
        public Task ProcessEventsAsync(PartitionContext partitionContext, IEnumerable<EventData> messages)
        {
            messages.Verify().IsNotNull();
            if (messages == null) return partitionContext.CheckpointAsync();

            foreach (var eventData in messages)
            {
                var data = Encoding.UTF8.GetString(eventData.Body.Array!, eventData.Body.Offset, eventData.Body.Count);
                _sampler.Add(1);
            }

            return partitionContext.CheckpointAsync();
        }
示例#2
0
        private async Task SendMessages(IWorkContext context, MetricSampler metrics)
        {
            for (var i = 0; (_option.Count == 0 || i < _option.Count) && !context.CancellationToken.IsCancellationRequested; i++)
            {
                try
                {
                    var message = $"Message {i} ***";
                    await _sendEvent.Value.SendAsync(context, new EventData(Encoding.UTF8.GetBytes(message)));

                    metrics.Add(1);
                    _messageCount++;
                }
                catch (Exception exception)
                {
                    context.Telemetry.Error(context, $"{DateTime.Now} > Exception: {exception.Message}");
                }
            }
        }
示例#3
0
        private async Task SendMessage(IWorkContext context, MetricSampler metrics)
        {
            for (var i = 0; (_option.Count == 0 || i < _option.Count) && !context.CancellationToken.IsCancellationRequested; i++)
            {
                try
                {
                    var message = $"Message {i} ***";
                    await _client.Send(context, message);

                    metrics.Add(1);
                    _messageCount++;
                }
                catch (Exception exception)
                {
                    context.Telemetry.Error(context, $"{DateTime.Now} > Exception: {exception.Message}");
                }
            }
        }
        public void GivenSampler_WhenTestingFast_ShouldHaveSingleSummaryRecord()
        {
            const int count   = 99;
            var       metrics = new MetricSampler(TimeSpan.FromSeconds(1));

            metrics.Start();

            Enumerable.Range(0, count)
            .ForEach(x => metrics.Add(x));

            metrics.Stop();

            IReadOnlyList <MetricSample> metricsList = metrics.GetMetrics();

            metricsList.Count().Should().Be(1);

            int   n            = count - 1;
            float sumOfNumbers = (n * (n + 1)) / 2;

            metricsList.Max(x => x.Value).Should().Be(sumOfNumbers);
            metricsList.Max(x => x.Count).Should().Be(count);
        }
 private Task ReceiveMessage(IWorkContext context, Message message)
 {
     _sampler.Add(1);
     //context.Telemetry.Info(context, $"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");
     return(Task.FromResult(0));
 }