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 |
/// <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); } }
/// <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(); } }