示例#1
0
        public async Task Send(TestContext context, IPipe <TestContext> next)
        {
            if (_faultCount > 0 && _faultCount < context.Attempts)
            {
                context.Attempts++;

                throw new NotSupportedException("Intentional");
            }

            await _report.Consumed <ThroughputTestContext>(context.CorrelationId).ConfigureAwait(false);

            await next.Send(context).ConfigureAwait(false);
        }
        public async Task Consume(ConsumeContext <LatencyTestMessage> context)
        {
            var current          = Interlocked.Increment(ref CurrentConsumerCount);
            var maxConsumerCount = MaxConsumerCount;

            if (current > maxConsumerCount)
            {
                Interlocked.CompareExchange(ref MaxConsumerCount, current, maxConsumerCount);
            }

            try
            {
                await _report.Consumed <LatencyTestMessage>(context.Message.CorrelationId).ConfigureAwait(false);
            }
            finally
            {
                Interlocked.Decrement(ref CurrentConsumerCount);
            }
        }
示例#3
0
        public async Task Consume(ConsumeContext <RequestMessage> context)
        {
            var current          = Interlocked.Increment(ref CurrentConsumerCount);
            var maxConsumercount = MaxConsumerCount;

            if (current > maxConsumercount)
            {
                Interlocked.CompareExchange(ref MaxConsumerCount, current, maxConsumercount);
            }

            try
            {
                context.Respond(new ResponseMessage(context.Message.CorrelationId));

                await _report.Consumed <RequestMessage>(context.Message.CorrelationId);
            }
            finally
            {
                Interlocked.Decrement(ref CurrentConsumerCount);
            }
        }
 public Task <bool> Handle(BenchmarkMessage message)
 {
     _reporter.Consumed <BenchmarkMessage>(message.Id);
     return(Task.FromResult(true));
 }