Sak*_*ake 4 asp.net asynchronous asp.net-core
我有一些流程需要很长的处理时间,客户不需要立即响应。我尝试过下面的代码但没有成功。
[HttpPost, Route("run")]
public async Task Run()
{
_ = this.LongProcess().ConfigureAwait(false);
return await Task.CompletedTask;
}
Run Code Online (Sandbox Code Playgroud)
在我的 LongProces 完成返回给客户端之前,该服务仍然需要一些时间。如何让Run方法及时返回给客户端?
如何让Run方法及时返回给客户端?
您需要一个基本的分布式架构。我建议:
然后,您的 API 将消息排入队列并返回:
[HttpPost, Route("run")]
public async Task Run()
{
var message = new Message();
await _queueService.EnqueueAsync(message);
return;
}
Run Code Online (Sandbox Code Playgroud)
独立处理器将消息出队并处理它们:
async Task HandleMessage(Message message)
{
await LongProcess().ConfigureAwait(false);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3455 次 |
最近记录: |