我可以在HttpWebRequest的GetResponseAsync()上跳过'await'吗?

问题描述 投票:1回答:1

在我的Web Api 2方法中,我正在做一些工作,然后我需要点击另一个站点的REST端点,所以我使用HttpWebRequest发送消息。但是,该外部URL在返回之前将处理30分钟(我不拥有外部站点)。我不希望我的方法的调用者必须等待该返回完成。

除了明显的“如果其他网站失败你不知道”是不是有任何缺点,不在await方法做request.GetResponseAsync(),只是让我的代码返回?

async-await asp.net-web-api2
1个回答
2
投票

没有做等待的任何缺点

有可能。当您处理本地HttpWebRequest时,它可能会通知远程API,这通常被Web服务器解释为“取消”。当您的应用程序被卸载/回收时,您的本地HttpWebRequest可能会在ASP.NET / IIS上定期发生。

出于这个原因,我建议使用标准的独立队列后端解决方案:让您的API将请求放入队列中,并使用单独的后端进程执行长时间运行的API调用。

© www.soinside.com 2019 - 2024. All rights reserved.