コード例 #1
0
 public async Task PublishAsync <T>(T message)
 {
     var serialized = JsonSerializer.Serialize(message);
     var address    = typeof(T).Name;
     var msg        = new Message(serialized);
     await _producer.SendAsync(address, msg);
 }
        public async Task SendAsync(string address, RoutingType?routingType, Message message, Transaction transaction, CancellationToken cancellationToken)
        {
            CheckState();

            _sendObservable.PreSend(address, routingType, message);
            await _producer.SendAsync(address, routingType, message, transaction, cancellationToken).ConfigureAwait(false);

            _sendObservable.PostSend(address, routingType, message);
        }
        public async Task SendAsync(string address, RoutingType?routingType, Message message, Transaction transaction, CancellationToken cancellationToken = default)
        {
            while (true)
            {
                CheckClosed();
                try
                {
                    await _producer.SendAsync(address, routingType, message, transaction, cancellationToken).ConfigureAwait(false);

                    return;
                }
                catch (ProducerClosedException)
                {
                    HandleProducerClosed();
                    await WaitAsync(cancellationToken).ConfigureAwait(false);

                    Log.RetryingSendAsync(Logger);
                }
            }
        }
 public static Task SendAsync(this IAnonymousProducer producer, string address, Message message, Transaction transaction, CancellationToken cancellationToken = default)
 {
     return(producer.SendAsync(address, null, message, transaction, cancellationToken));
 }
 public static Task SendAsync(this IAnonymousProducer producer, string address, RoutingType routingType, Message message, CancellationToken cancellationToken = default)
 {
     return(producer.SendAsync(address, routingType, message, null, cancellationToken));
 }