簡體   English   中英

如何在不等待 ASP.NET API 中的響應的情況下處理多個 3rd 方 API

[英]How to process multiple 3rd party APIs without waiting for their response in ASP.NET API

假設我有添加訂單 API,如果訂單保存成功,我需要調用 3 個 API。 我想在訂單處理完成后立即返回響應,而不用等待 3 個 API 完成。

例如:

var result = ProcessOrder(parameters);
if (result.IsSuccess)
{
   await SendSMSAsync(smsDetails);   //All 3 APIs includes calling the API, saving status to database & log
   await SendEmailAsync(emailDetails);
   await ThirdPartyAsync(moreDetails);
}
return result;   //I want to return this without waiting for the above 3 APIs to finish

另外,我想再次自動呼叫任何失敗的 API。 實現這一目標的最佳方法是什么?

不要等待,而是創建一個任務並調用 Task.Run。 這將在不等待任務返回的情況下運行。

我通過使用.ConfigureAwait(false)實現了這一點。 例如:

if (result.IsSuccess)
{
   SendSMSAsync(smsDetails).ConfigureAwait(false);
   SendEmailAsync(emailDetails).ConfigureAwait(false);
   ThirdPartyAsync(moreDetails).ConfigureAwait(false);
}

更多信息可以在這里找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM