Azure Worker Роль общения - PullRequest
1 голос
/ 10 мая 2011

У меня есть стартовый работник.Это делает некоторые инициализации.Я хочу, чтобы другие работники ждали этого стартера.Единственный способ на мой взгляд - это поместить сообщения в очередь.Рабочие будут опрашивать очередь.Они начнутся после прочтения сообщений.Есть ли лучший способ синхронизации?

1 Ответ

2 голосов
/ 10 мая 2011

Проблема с опросом очереди: как только один работник увидит сообщение очереди «Я готов», что произойдет с другими работниками?Если читатель удаляет сообщение очереди (как и должно быть), другие никогда его не увидят.Если читатель не удаляет его, то у вас есть это сообщение там в течение остального времени (и в следующий раз, когда вы загрузитесь, сообщение все еще там).

Что если вы разместили очень простой сервис wcfв загрузочном экземпляре рабочей роли с методом AreYouRunning (), возвращающим true / false?Если экземпляр все еще находится в OnStart (), вы не сможете подключиться к службе.Как только вы подключитесь, просто проверьте возвращаемое значение.Вам просто потребуются другие роли для настройки какого-либо механизма опроса в их OnStart () или Run () для периодического опроса.

Возможно, есть другие способы сделать это, например, иметьстрока в таблице Azure.Вам по-прежнему необходимо убедиться, что вы можете очистить состояние «Выполнение» из этой таблицы до запуска других ролей, чтобы идея службы wcf могла лучше удовлетворить ваши потребности.

...