Запуск нескольких функций одновременно с веб-сайта - PullRequest
0 голосов
/ 20 мая 2018

У меня очень простое приложение.

Пользователь загружает фотографию, затем фотография получает различные улучшения, такие как «размытие» или «сепия».

Обработка фильтров изображения, сделано в лазурных функциях.Таким образом, вы передаете 'guid' изображения в функцию Azure вместе с фильтром, затем функции Azure заботятся об этом, создают фотографию и помещают в хранилище Azure.

У меня есть несколько фильтров изображений.

Можно ли делать с моего сайта несколько запросов к функциям Azure одновременно для каждого фильтра?Или есть другой способ.

Примечание: я не хочу использовать триггеры blobstorage, так как они могут иметь задержку в пару минут.Вот что я прочитал в официальной документации Microsoft.

Я думаю, что выполнение 100 параллельных http-запросов на веб-сервере может быть излишним.Что является альтернативой для запуска 100 параллельного выполнения функции.

1 Ответ

0 голосов
/ 21 мая 2018

Вы можете продолжать использовать HTTP для этой задачи и запускать 100 параллельных запросов к вашим функциям Azure.Однако, чтобы это работало на 100% надежно, это может быть проблемой, по крайней мере, повторите попытку, если некоторые ответы имеют неуспешный код состояния.

Более естественным способом было бы рефакторинг к событиям, управляемым событиями.Функции.

Одной из опций может быть Сетка событий Azure, как описано в Реакция на события хранилища BLOB-объектов .Сетка событий быстрая, но я не могу найти ссылку на гарантированную задержку для событий Blob.Также может показаться, что в этом случае вам могут понадобиться 100 функций, что звучит утомительно.

Наконец, вы можете просто отправить 100 сообщений в очередь хранилища или очередь шины обслуживания, сообщая, какой большой двоичный объект необходимо обработать, а какой -преобразование внутри сообщения полезной нагрузки.Функции времени выполнения позаботятся о масштабировании и распараллеливании выполнений на основе статистики очереди.

...