Я разрабатываю один 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? Любая лучшая практика или обычная практика для этой проблемы?