Опубликован: 30.05.2011 | Доступ: свободный | Студентов: 2407 / 233 | Оценка: 4.12 / 4.41 | Длительность: 12:00:00
Самостоятельная работа 7:

Работа с Windows AzureQueue

< Лекция 16 || Самостоятельная работа 7: 12345 || Лекция 17 >

Извлечение сообщения из очереди

Перейдите с помощью обозревателя решений к файлу Global.asax.cs и добать следующий код в метод ApplicationStart :

void Application_Start(object sender, EventArgs e)
        {
            CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
            {
                configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
            });

        }

Затем перейдите к файлу WorkerRole.cs нашей рабочей роли. Добавьте следующие ссылки:

using System.Diagnostics;
using System.Threading;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Diagnostics;
using Microsoft.WindowsAzure.ServiceRuntime;
using Microsoft.WindowsAzure.StorageClient

Измените метод OnStart в соответствие со следующим кодом:

public override bool OnStart()
        {
            ServicePointManager.DefaultConnectionLimit = 12;

            CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
                {
                      configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
                });

        return base.OnStart();


        }

Затем приведите метод Run в соответствие с:

public override void Run()
        {

            var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
            // получение ссылок на сообщения очереди
            var queueClient = storageAccount.CreateCloudQueueClient();
            var queue = queueClient.GetQueueReference("messagequeue");

            // получение сообщение и передача его в лог эмулятора Compute Emulator
            while (true)
            {
                Thread.Sleep(10000);
                if (queue.Exists())
                {
                    var msg = queue.GetMessage();
                    if (msg != null)
                    {
                        Trace.TraceInformation(string.Format("Сообщение '{0}' обработано.", msg.AsString));
                        queue.DeleteMessage(msg);
                    }
                }
            }
        }

Запустите приложение, заполните текстовое поле и нажмите кнопку "Отправить" :


Рис. 22.3.

Затем, откройте интерфейс Compute Emulator :


Рис. 22.4.

И откройте лог рабочей роли, чтобы убедиться в работоспособности приложения:

< Лекция 16 || Самостоятельная работа 7: 12345 || Лекция 17 >
Роза Мальцева
Роза Мальцева
Игнат Гринько
Игнат Гринько

Примерно месяц назад получил на сайте код Дримспарк, сегодня вводил его на сайте Дримспарк, пишет: Недействительный код проверки. Проверьте правильность введенного кода. Код вводил методом: скопировать-вставить.