我必须发出多个 Http 发布请求(几百个或更多),而不是像 SLA 那样等待任何响应。在不等待这些响应的情况下,我需要从我的 Web API 发回响应(在执行提到的多个 HTTP 请求之前,我从另一个 API 获取数据并需要返回)。
我环顾四周,发现不等待响应的“即发即弃”实现。我不确定这种做法是否正确,并且由于我在没有等待并行触发和忘记请求的情况下返回,HttpClient 将如何处理?
HttpClient client = new HttpClient();
var CompositeResponse = client.GetAsync(_SOMEURL);
List<MEDLogresp> sortedmeds = MEDLogresps.OrderBy(x => x.rxId).ThenBy(y => y.recordActionType);
Task.Run(() => Parallel.ForEach(sortedmeds, ele => clientMED.PostAsync(URL , new StringContent(JsonConvert.SerializeObject(ele), Encoding.UTF8, "application/json"))));
return ResponseMessage(Request.CreateResponse<CompositeResponse>(HttpStatusCode.OK, compositeResponse));