'a erişemiyor SQS iletileri oluşturan ve bunları bir SQS kuyruğuna yerleştiren ve bu iletileri okuyan ve iletinin gövdesi ve özniteliklerine göre belirli bir mantığı gerçekleştiren başka bir işlem gerçekleştiren bir işlem var.Amazon SQS ileti öznitelikleri C#
SQS kuyruğunda, gövde ve özniteliklerle bir ileti başarıyla oluşturabilirim, ancak ileti öznitelikleri geri okunurken sorun yaşıyorum!
Mesaj oluşturma sürecimin doğru olduğundan eminim, sıranın AWS SQS konsolundaki öznitelikleri görebiliyorum. Bu özellikleri neden okuyamadığımı anlayamıyorum.
IAmazonSQS sqs = AWSClientFactory.CreateAmazonSQSClient();
var sendMessageRequest = new SendMessageRequest();
sendMessageRequest.QueueUrl = "myURL";
Dictionary<string, MessageAttributeValue> MessageAttributes = new Dictionary<string, MessageAttributeValue>();
MessageAttributeValue messageTypeAttribute = new MessageAttributeValue();
messageTypeAttribute.DataType = "String";
messageTypeAttribute.StringValue = "HIGH";
MessageAttributes.Add("MESSAGEPRIORITY", messageTypeAttribute);
sendMessageRequest.MessageAttributes = MessageAttributes;
sendMessageRequest.MessageBody = "Thats the message body";
sqs.SendMessage(sendMessageRequest);
yukarıdaki işler ve nitelik MESSAGEPRIORITY bir mesaj = YÜKSEK oluşturulur (I SQS Konsolu mesajı ve niteliğini görebilir):
Kodum mesajı oluşturmak için.
mesajı geri okurken (vb Kuyruk URL'yi görüntülemesi kod ben atlanır ettik parçalar): Yukarıdaki kod ile
IAmazonSQS sqs = AWSClientFactory.CreateAmazonSQSClient();
ReceiveMessageResponse receiveMessage = new ReceiveMessageResponse();
ReceiveMessageRequest request = new ReceiveMessageRequest();
request.QueueUrl = "myURL";
receiveMessage = sqs.ReceiveMessage(request);
string messageBody = receiveMessage.Messages[0].Body;
Dictionary<string, MessageAttributeValue> messageAttributes = receiveMessage.Messages[0].MessageAttributes;
, ben iletinin gövdesini olsun, ama nitelikleri boş ! Doğrudan SQS sırasını kullanarak iletiyi el ile oluştururken de aynı sorun var. Nedenini anlayamıyorum? Herhangi bir yardım harika olurdu. Çok teşekkürler,
İyi bulmak, ben nitelikler yanlış ayarlanmış vardı düşünerek bir süre geçirdi. MessageAttributeNames listesini satır içi yaparak işleri biraz basitleştirebilirsiniz; request.MessageAttributeNames = new List() {"MESSAGEPRIORITY"}; kısa bir öznitelikler listeniz varsa, daha net bir yol. –
sixones