【发布时间】:2022-02-23 08:32:25
【问题描述】:
我正在构建一个 API,它将处理立即执行大量工作的 http 调用。
例如,在一个控制器中,有一个操作(Post 请求)将在主体中获取数据,并执行一些应该立即完成的处理,但会持续大约 1 到 2 分钟。
我使用 CQRS 和 Mediatr,在这个发布请求中,我调用一个命令来处理处理。
考虑到这一点,我希望发布请求启动命令,然后向用户返回 Ok,尽管命令仍在后台运行。一切完成后,用户将收到电子邮件通知。
有人知道实现此目的的最佳实践吗?
虽然我使用 MediatR,将请求发送到处理程序,但调用不会并行执行。
[HttpPost]
public async Task<IActionResult> RequestReports([FromBody] ReportsIntent reportsIntent)
{
await _mediator.Send(new GetEndOfWeekReports.Command(companyId, clientId, reportsIntent));
return Ok();
}
【问题讨论】:
标签: asp.net-core background cqrs mediatr