我正在开发一种Web API,它将调用一种第三方API。对方根据触发状态进行回调。因此,如果我的触发因素是成功,他们将调用我们的成功回调。对于失败,他们给出失败的回调等。如果收到失败的回调,我们将再次调用触发器。
目前,一切正常。现在,我们需要包括另一项功能,例如,如果在规定的时间内未收到任何回叫,触发器将被视为失败,而我需要像失败的回调一样再次调用触发器。
以下是实施概述;
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本身是否有任何选择? 有什么更好的做法或针对此问题的通用做法?