можно запустить лазурное веб-задание после завершения других веб-заданий - PullRequest
0 голосов
/ 07 января 2019

скажи, у меня есть это:

Шаг 1: Лазурная веб-работа, запускаемая таймером, и это задание создаст 1000 сообщений, и я помещу их в очередь.

Шаг 2: у меня есть еще одно лазурное веб-задание, запущенное вышеуказанной очередью сообщений, оно будет обрабатывать эти сообщения.

Шаг 3: Финальная веб-работа должна запускаться только тогда, когда все сообщения были обработаны на шаге 2.

Похоже, Azure Queue не поддерживает порядок и единственный способ - это использовать ServiceBus. Мне интересно, действительно ли это единственный путь?

Что я думаю, это такой процесс:

  1. Поместите все эти сообщения в таблицу Azure с некоторым указанием guid в качестве первичного ключа и состоянием, равным 0.

  2. после завершения шага 2, измените статус этого сообщения на 1 (т.е. завершено) и запустит шаг 3, если все сообщения были выполнены.

Будет ли это работать? Или, может быть, есть несколько пакетов nuget, которые я могу использовать для достижения того, чего хочу?

1 Ответ

0 голосов
/ 08 января 2019

Я думаю, что самый простой способ - это сочетание приложения логики Azure и функции Azure.

Приложение логики - это автоматизированный масштабируемый рабочий процесс, его можно запустить с помощью таймера, HTTP-запроса и т. Д. А функция Azure - это серверная вычислительная служба, которая позволяет запускать код по требованию без необходимости явной подготовки или управления инфраструктурой.

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

Что касается WebJob, то да, QueueTrigger не поддерживает порядок. А служебная шина, о которой вы упомянули, соответствует вашим требованиям по FIFO . Однако вам нужно убедиться, что ваш шаг 3 будет запущен после шага 1, потому что он уже пуст в вашей очереди до создания очередей.

Надеюсь, мой ответ поможет вам.

...