在我的Web Api 2方法中,我正在做一些工作,然后我需要点击另一个站点的REST端点,所以我使用HttpWebRequest
发送消息。但是,该外部URL在返回之前将处理30分钟(我不拥有外部站点)。我不希望我的方法的调用者必须等待该返回完成。
除了明显的“如果其他网站失败你不知道”是不是有任何缺点,不在await
方法做request.GetResponseAsync()
,只是让我的代码返回?
没有做等待的任何缺点
有可能。当您处理本地HttpWebRequest
时,它可能会通知远程API,这通常被Web服务器解释为“取消”。当您的应用程序被卸载/回收时,您的本地HttpWebRequest
可能会在ASP.NET / IIS上定期发生。
出于这个原因,我建议使用标准的独立队列后端解决方案:让您的API将请求放入队列中,并使用单独的后端进程执行长时间运行的API调用。