gpt4 book ai didi

asp.net - 从 asp.net 核心 Controller 方法返回结果后如何继续处理?

转载 作者:行者123 更新时间:2023-12-05 01:53:58 25 4
gpt4 key购买 nike

我有一些处理时间较长的流程,客户不需要立即响应。我试过以下代码但没有成功。

    [HttpPost, Route("run")]
public async Task Run()
{
_ = this.LongProcess().ConfigureAwait(false);
return await Task.CompletedTask;
}

在我的 LongProces 完成返回给客户端之前,服务仍然需要时间。如何让Run方法及时返回给客户端?

最佳答案

How can I make the Run method return to the client promptly?

您需要一个基本的分布式架构。 I recommend :

  1. 持久存储系统,例如 Azure 队列或 AWS 简单队列服务。
  2. 一个独立的处理器,例如 Azure Functions 或 AWS Lambdas。

然后,您的 API 将消息排入队列并返回:

[HttpPost, Route("run")]
public async Task Run()
{
var message = new Message();
await _queueService.EnqueueAsync(message);
return;
}

独立处理器将消息出列并处理它们:

async Task HandleMessage(Message message)
{
await LongProcess().ConfigureAwait(false);
}

关于asp.net - 从 asp.net 核心 Controller 方法返回结果后如何继续处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70879875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com