PublishAsync() public method

Initiates the asynchronous execution of the Publish operation.
public PublishAsync ( PublishRequest request, System cancellationToken = default(CancellationToken) ) : Task
request PublishRequest Container for the necessary parameters to execute the Publish operation.
cancellationToken System /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. ///
return Task
Exemplo n.º 1
0
 /// <summary>
 /// returns nothing on error
 /// </summary>
 public string PublishRawMessage(string topicArn, string rawMessage)
 {
     try {
         using (var client = new AmazonSimpleNotificationServiceClient(this.AwsCredentials, this.AwsRegion)) {
             var pr = new PublishRequest();
             pr.TopicArn = topicArn;
             pr.Message  = rawMessage;
             var t = client.PublishAsync(pr);
             t.Wait();
             if (t.IsCompleted && t.Result is object)
             {
                 Trace.TraceInformation($"Outgoing SNS-Message for Topic '{topicArn}' Msg-ID: {t.Result.MessageId}");
                 return(t.Result.MessageId);
             }
             else
             {
                 Trace.TraceError($"Publish SNS-Message for Topic '{topicArn}' FAILED: AWS responded non-success");
                 return(null);
             }
         }
     }
     catch (Exception ex) {
         Trace.TraceError($"Publish SNS-Message for Topic '{topicArn}' EXCEPTION: {ex.Message}");
         return(null);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Sends the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        public void Send(Message message)
        {
            var messageString = JsonConvert.SerializeObject(message);
            _logger.Value.DebugFormat("SQSMessageProducer: Publishing message with topic {0} and id {1} and message: {2}", message.Header.Topic, message.Id, messageString);

            using (var client = new AmazonSimpleNotificationServiceClient(_credentials))
            {
                var topicArn = EnsureTopic(message.Header.Topic, client);
                var publishRequest = new PublishRequest(topicArn, messageString);
                client.PublishAsync(publishRequest).Wait();
            }
        }