Проверка времени ожидания ответа WebAPI - PullRequest
0 голосов
/ 19 сентября 2018

Я разрабатываю один WebAPI, который вызывает сторонний API.У другой стороны есть обратные вызовы в соответствии с состоянием триггера.Так что, если мой триггер - успех, они перезвонят в наш успехДля Failed они дают неудачный обратный вызов и т. Д. Если получен неудачный обратный вызов, мы снова вызовем триггер.

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

Ниже приводится схемареализации;

public class CoursesController : ApiController
{
  [Route("api/trigger")]
  public IHttpActionResult PostTrigger()
  {
    /Added code to call third party API and save the response reference
  }

  [Route("api/successcallback")]
  public IHttpActionResult PostSuccessCallback(SuccessModel model)
  {
    //save the success data and finishes the flow
  }

  [Route("api/failurecallback")]
  public IHttpActionResult PostSuccessCallback(FailedModel model)
  {
    //save the failed data and call trigger again
  }
}

Вот как мы реализуем этот таймаут?

Мое мышление "

Любой планировщик, такой как планировщик Windows или создание службы Windows, для проверки тайм-аута триггера и процесса, если не получен обратный вызов даже после истечения времени ожидания.

Любое другое решение, я имею в виду без какого-либо внешнего планировщика или фоновой службы для достижения этой цели? Любой вариант в самом WebAPI? Любая лучшая практика или обычная практика для этой проблемы?

...