Подход для длительного использования REST API - PullRequest
0 голосов
/ 06 декабря 2018

Мы пытаемся использовать API REST, для процессора сообщений, который выполняет некоторые операции, которые могут занять больше настроенного времени ожидания.

Хотелось бы знать, остановит ли выполнение тайм-аут вызова Http API, выполнениеAPI или API будет продолжать работать?

Идея в том, что мы можем запустить и забыть API, нас не волнует, если API не вернет 404 или 503. Но хотелось бы услышать, будет ли API продолжать работать?

Любой вклад или предложение приветствуется.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Отличный способ - справиться с этим с помощью шаблона обратного вызова / наблюдателя.Прежде всего, поймите, что есть два типа тайм-аута, сервер и клиент.Вы можете явно указать время ожидания клиента, время ожидания сервера обрабатывается самим сервером.Итак, вам нужно будет реализовать алгоритм таким образом, чтобы

  1. вы идентифицировали каждый запрос уникальным способом и отмечали его перед запуском в память или файл / db.
  2. Пожарный запрос с соответствующим методом обратного вызова.Следовательно, в ответ вы можете контролировать такие вещи, как, пометить запрос как выполненный или не выполненный, или что-то еще.
  3. Пометить / удалить данные запроса.
0 голосов
/ 06 декабря 2018

Вы должны использовать какую-то фоновую обработку для управления процессом.Я рекомендую использовать Hangfire для этого.https://www.hangfire.io/ Используйте Hangfire, чтобы поставить в очередь задание, он вернет идентификатор задания.Вы можете вернуть этот идентификатор работы на стороне клиента.Предоставьте другой API для проверки статуса этой работы.

...