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 марта 20, 20:32
⚫️Тематика черного цвета для России http://dlvr.it/R1DKm7 https://twitter.com/f1ashr/status/1108466259765555200/photo/1

Twitter марта 20, 20:32
Автоматическое информирование о выходе новых сезонов http://dlvr.it/R1DKlZ

Twitter марта 20, 20:32
Голосовой набор тэгов http://dlvr.it/R1DKlv

Twitter марта 19, 20:27
Ради дружбы с Индией http://dlvr.it/R18YMd

Twitter марта 19, 20:27
Вконтакте 7 лет http://dlvr.it/R18YKm

Twitter марта 19, 20:27
Разбор фильма Дивергент2 Инсургент http://dlvr.it/R18YLy https://twitter.com/f1ashr/status/1108102729656762369/photo/1

Twitter марта 15, 12:51
Фильтр по стране на Ютубе http://dlvr.it/R0tgZq https://twitter.com/f1ashr/status/1106538299487739905/photo/1

Twitter марта 14, 12:25
Роскомнадзор и Криптовалюты http://dlvr.it/R0pqG6

Twitter марта 5, 19:59
Россияне встречают рассвет индийской йогой http://dlvr.it/R0DszD https://twitter.com/f1ashr/status/1103022131506425856/photo/1

Twitter февраля 24, 09:53
Что интересного есть в греческом языке? http://dlvr.it/QzZ2dK

Twitter февраля 24, 09:53
Ретро-поезд на угле с надписью СССР http://dlvr.it/QzZ2cT https://twitter.com/f1ashr/status/1099608139756843009/photo/1

Twitter февраля 24, 09:53
Следующий шаг криптовалют http://dlvr.it/QzZ2Y4 https://twitter.com/f1ashr/status/1099608134694256641/photo/1

Twitter февраля 23, 09:49
Рутин тутин Путин http://dlvr.it/QzWBXG

Twitter февраля 23, 09:49
Индия: Чем славится индийская культура? http://dlvr.it/QzWBVK https://twitter.com/f1ashr/status/1099244865022357506/photo/1

Twitter февраля 23, 09:49
Главное изменение в Твиттере http://dlvr.it/QzWBX9

Twitter февраля 12, 09:04
Роскомнадзор достучался до Azure http://dlvr.it/QyjSPS

Twitter февраля 6, 07:58
Про жизнь в Южной Осетии http://dlvr.it/QyHTwx

Twitter февраля 6, 07:58
Хиллари против Трампа в Америке и приход женщин во власть http://dlvr.it/QyHTxG https://twitter.com/f1ashr/status/1093056334906281985/photo/1

Twitter февраля 6, 07:58
Powering Down Google Reader http://dlvr.it/QyHTvM

Twitter февраля 4, 22:48
Разбор сериала Медичи: Повелители Флоренции http://dlvr.it/QyBKWh https://twitter.com/f1ashr/status/1092555544953466880/photo/1

Мой твиттер

Копирайт

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

© Copyright 2008