Azure StorageAccount's Queues

Как известно Storage в Азуре состоит из 3х основных элементов - BlobStorage, TableStorage, QueueStorage. Подробное описание работы с первыми двумя есть в документации MSDN, а вот про очереди написано мало. Более того, последняя версия Azure SDK не содержит встроенного в MSVS интерфейса для работы с очередями, как приведено на скриншотах ниже. Поэтому для ручной работы с очередями можно использовать упоминавшийся ранее AzureStorageExplorer 5.0 alpha. По сути, очереди используются для отладки в IntelliTrace и реализуют интерфейс FirstInFirstOut, который в принципе каждый смог бы реализовать и на более привычном TableStorage.
Также как и для Таблиц, для очередей нужно создавать клиента:
Copy Source | Copy HTML
  1. #region Работа через queue
  2. private static CloudQueue Queue
  3. {
  4.     get
  5.     {
  6.         CloudQueue _container;
  7.         CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageAccount"]);
  8.         CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
  9.         // Retrieve a reference to a container  
  10.         _container = queueClient.GetQueueReference("postsforindex");
  11.         // Create the container if it doesn't already exist
  12.         //_container.CreateIfNotExist();
  13.         return _container;
  14.     }
  15. }
  16. #endregion
Важно, чтобы контекст клиента не был просто статической переменной класса, так как это приведет к блокировке. Когда контекст клиента создан, нас интересует 2 базовые операции. Помещение в очередь и обработка очереди. Помещение в очередь возможно одной командой, где одно сообщение представляет из себя простое текстовое сообщение. Уникальная особенность очередей Азура в том, что можно сразу сказать, что помещенное сообщение в очередь станет доступно не сразу, а через некоторое время, в нашем случае это 15 минут.
Copy Source | Copy HTML
  1. //добавили ссылку в очередь на индексирование
  2. Queue.AddMessage(new CloudQueueMessage(url.ExpandedUrl), null, TimeSpan.FromMinutes(15));
  3. //делаем 15 минут задержку на проставление лайков 
Обработка сообщений из очереди возможна следующим кодом.
Copy Source | Copy HTML
  1. for (CloudQueueMessage message = Queue.GetMessage();
  2.                     message != null && !MainService._isStoped
  3.                     //After reading the message, the client should delete it.
  4.                     Queue.DeleteMessage(message),message = Queue.GetMessage()
  5.                     )
  6.                 {
  7.                     PostToIndex pst = MessageDecode(message);
  8.                 }
И обещанный вначале скриншот, показывающий инструмент ручной работы с очередями.

Метки: , ,   Категории:microsoft


blog comments powered by Disqus

Добавить комментарий

Кто я?

Программист. Я слежу за блогосферой и знаю, как будет развиваться интернет. Когда у меня есть время я даже прилагаю для этого усилия. Подробнее

Последние комментарии

Не отображать

Topbot at FeedsBurner

Мои Твиты

Twitter января 17, 13:37
программа instagramliker обновлена 2018г http://dlvr.it/QBbVpV

Twitter января 16, 16:22
Разбор Звездные войны: Последние джедаи http://dlvr.it/QBSdwN https://twitter.com/f1ashr/status/953301465962921985/photo/1

Twitter января 14, 19:00
8 японок основали поп-группу для пропаганды криптовалют http://dlvr.it/QBC3cw https://twitter.com/f1ashr/status/952616326605938688/photo/1

Twitter января 7, 10:12
Белый шум защищен авторским правом на youtube http://dlvr.it/Q9DFXS

Twitter января 1, 20:52
Новогодние белки http://dlvr.it/Q8SyPZ https://twitter.com/f1ashr/status/947933468222152704/photo/1

Twitter января 1, 16:43
Популярные блогеры и посты за 2017 год http://dlvr.it/Q8RpTj https://twitter.com/f1ashr/status/947870931896082433/photo/1

Twitter января 1, 15:37
@true_policy @nickolas_vs @KremlinRussia @iremeslo Но Путин делает все, чтобы выборная система в глазах аборигенов стала нелегитимной.

Twitter января 1, 11:32
@true_policy @nickolas_vs @KremlinRussia @iremeslo Нужен не новый президент, а другой система. От демократии к респ… https://twitter.com/i/web/status/947792574697431040

Twitter декабря 31, 21:11
Самоуправляемые ездящие картошки http://dlvr.it/Q8MGMd

Twitter декабря 31, 13:34
Разбор сериала Медичи: Повелители Флоренции http://dlvr.it/Q8KDRt https://twitter.com/f1ashr/status/947460855972601857/photo/1

Twitter декабря 31, 11:32
Папа Римский выступил на TED http://dlvr.it/Q8Jjb5

Twitter декабря 31, 10:25
коломенский кремль: альтернативная история 2 http://dlvr.it/Q8JRYv https://twitter.com/f1ashr/status/947413453701971968/photo/1

Twitter декабря 31, 10:25
Суперлайки в Перископе http://dlvr.it/Q8JRYr

Twitter декабря 30, 15:16
Peace, Death! (Пиз Дец) http://dlvr.it/Q8Cv1S https://twitter.com/f1ashr/status/947124264259395584/photo/1

Twitter декабря 30, 15:16
Итоги 2016 года в Живом Журнале http://dlvr.it/Q8Ctw6 https://twitter.com/f1ashr/status/947124257149956096/photo/1

Twitter декабря 30, 13:39
Разбор сериала "Молодой папа" (теория общего знания, часть 22) http://dlvr.it/Q8CP7P https://twitter.com/f1ashr/status/947099721675370496/photo/1

Twitter декабря 30, 13:05
Механического медведя не починить - пятая песня FNAF http://dlvr.it/Q8CDG8 https://twitter.com/f1ashr/status/947091170844278784/photo/1

Twitter декабря 30, 10:55
Skype and Baidu links http://dlvr.it/Q8Bf03

Twitter декабря 30, 10:23
Яндекс атаковал Израиль http://dlvr.it/Q8BWKR

Twitter декабря 30, 10:23
По случаю 8 марта погасили статую свободы http://dlvr.it/Q8BW9V https://twitter.com/f1ashr/status/947050399160156161/photo/1

Мой твиттер

Копирайт

Все мысли, высказанные в блоге, являются моим мнением и за это мнение меня никто не забанит! Кроме того, никто не имеет право копировать материалы блога без использования ctrl+C/V!

© Copyright 2008