public async ValueTask StartAsync(IConsumerDefinition definition, IConsumerPipelineFactory pipelineFactory)
        {
            var topologyDefinition = _topology.BuildFrom(definition);

            _processor = await _client.BuildProcessorAsync(topologyDefinition);

            _sender = await _client.BuildSenderAsync(topologyDefinition);

            _processor.ProcessMessageAsync += async e =>
            {
                var message      = new DefaultServiceBusMessage(e.Message.Body);
                var context      = new DefaultConsumerContext(message, definition);
                var azureContext = new AzureConsumerContext(context, e, _bus, _sender);
                var pipeline     = pipelineFactory.Create(null);
                await pipeline.Execute(azureContext);
            };
            _processor.ProcessErrorAsync += e =>
            {
                _logger.LogError(e.Exception, e.ToString());
                return(Task.CompletedTask);
            };
            await _processor.StartProcessingAsync();
        }
Exemplo n.º 2
0
        public async ValueTask StartAsync(IPublisherDefinition definition)
        {
            var topology = _topologyBuilder.BuildFrom(definition);

            _sender = await _clientFactory.BuildSenderAsync(topology);
        }