HTTP Webhook с динамически рассчитанным временем ожидания - PullRequest
0 голосов
/ 25 июня 2019

Мы используем продукт рабочего процесса, где у нас есть шаблон событий, который может принять динамически рассчитанный (по рабочему процессу) тайм-аут. Мы ищем портирование на приложения логики и видим, что шаблон HTTP Webhook заменяет шаблон событий. Однако мы столкнулись с проблемой, когда HTTP Webhook может принимать только фиксированный тайм-аут, тайм-аут в триггере ввода / вывода или параметр (который является фиксированным).

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

Есть ли способ заставить HTTP Webhook принимать динамически рассчитанное время ожидания?

Пока что мы рассмотрели следующие варианты:

1) Реализация настраиваемого коннектора HTTP Webhook, который может принимать динамически рассчитанное время ожидания. Очевидно, мы хотели бы получить доступ к текущей реализации HTTP Webhook, чтобы сэкономить время и, кроме того, посмотреть, куда подключить динамически рассчитанное время ожидания.

Мы опасаемся, что это будет невозможно, поскольку время ожидания присуще управлению соединителями и не может быть переопределено / настроено настраиваемым соединителем HTTP Webhook - мы отсканировали пользовательскую документацию по соединителю Webhook, и там нет упоминания о Тайм-аут webhook, который заставляет нас полагать, что тайм-аут находится вне контроля пользовательского соединителя. Комментарии?

2) Реализация псевдо-настраиваемого шаблона времени ожидания с использованием других разъемов:

                   Parallel Actions
                         \/
          --------------------------------
          ||                            ||
          \/                            \/
HTTP Webhook, no timeout       Delay/Delay schedule
          ||                            ||
          ||                            \/
          ||                  HTTP Request -> triggersubscription
          ||                            ||
          \/                            \/
          --------------------------------
                         \/
  Switch: HTTP Webhook Body = 'Event' | 'Timeout'

Секретный соус заключается в том, чтобы использовать HTTP-запрос к нашему веб-API для запуска HTTP Webhook, но с телом Timeout. Мы рассмотрели возможность запуска HTTP Webhook из самого приложения логики, но, похоже, мы не можем получить @callbackUrl HTTP Webhook.

Очевидно, что этот метод включает в себя 2 дополнительных действия и увеличивает нагрузку (и задержку) на сервере Web API. Комментарии?

...