Очередь сообщений чтения служебной шины Azure
Я довольно новичок в Azure, но изо всех сил пытаюсь придумать или найти способ читать сообщения в моей очереди. У меня есть следующее:
- Облачный сервис
- Аккаунт хранения
- Очереди
То, с чем я сейчас борюсь, это то, что я вижу через симпатичный график, который Portal дает мне сообщениям, но я хотел бы видеть их содержимое, и, по крайней мере, это невозможно сделать через Portal.
Поэтому я начал взламывать код, чтобы получить эти сообщения, но это тоже не работает.
var credentials = new StorageCredentials("account", "key");
var storageAccount = new CloudStorageAccount(credentials, true);
var queue = storageAccount.CreateCloudQueueClient();
var messages = queue.GetQueueReference("orders").GetMessages(100, TimeSpan.FromHours(10), null, null);
Что я не получаю - мне нужно связать свою очередь с хранилищем?
Приветствия, DS.
1 ответ
Вот простой пример извлечения сообщений из очереди. Сначала вам нужно создать CloudStorageAccount, чтобы ссылаться на конкретное хранилище. Во-вторых, вы создаете новый CloudQueueClient, чтобы подключиться к своему CloudStorageAccount. Получив CloudQueueClient, вы можете ссылаться на очередь и создавать ее.
// Your Storage credentials
var credentials = new StorageCredentials("account", "key");
var storageAccount = new CloudStorageAccount(credentials, true);
// Create a new client
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
// Retrieve a reference to a queue
CloudQueue queue = queueClient.GetQueueReference("myqueue");
// Create the queue if it doesn't already exist
queue.CreateIfNotExists();
// Send 10 messages to the queue
for (int i = 0; i < 10; i++)
{
// Create a message and add it to the queue.
CloudQueueMessage message = new CloudQueueMessage(string.Format("Hello, World {0}", i));
queue.AddMessage(message);
}
// Read next 20 messages
foreach (CloudQueueMessage message in queue.GetMessages(20, TimeSpan.FromMinutes(5)))
{
// Reading content from message
Console.WriteLine(message.AsString);
// Process all messages in less than 5 minutes, deleting each message after processing.
queue.DeleteMessage(message);
}