Можно ли реализовать асинхронные триггеры HTTP" fire and forget " в функциях azure


У меня есть приложение функций azure, которое имеет длительную работу. Я хотел бы запустить его через HTTP (для простоты)с некоторым входом и без вывода. Я не хочу держать соединение HTTP открытым в течение всего времени выполнения задания.

Каковы мои варианты построения приложения функций, в котором среда выполнения принимает некоторые данные, а затем немедленно возвращает управление вызывающему объекту перед вызовом моего запуска.csx файл?

1 2

1 ответ:

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

Таким образом, ваш запрос возвращается немедленно, и ваша длительная работа может быть выполнена в контексте функции запуска очереди. Одно из преимуществ заключается в том, что вы получите повтор поведения триггеров очереди бесплатно. Например, если ваш длительное выполнение задачи завершается неудачей на полпути, сообщение будет повторно обработано через некоторое время (сообщения очереди удаляются из очереди только после их успешной обработки).

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