C# 在保持实例运行的同时,是否有方法从对ASP.NET的API调用返回响应?

C# 在保持实例运行的同时,是否有方法从对ASP.NET的API调用返回响应?,c#,asp.net,cqrs,event-sourcing,C#,Asp.net,Cqrs,Event Sourcing,我正在使用ASP.NET编写一个API,并且我有一些来自不同端点的可能长时间运行的代码。系统使用CQR和事件源。命令到达终点,然后使用MediatR作为事件发布。但是,处理程序可能会长期运行。因为一些传入的请求可能被发送到多个处理程序。此过程可能需要比AWS允许的12秒更长的时间才能返回错误代码 是否有一种方法可以将响应返回给调用者,以表明事件已创建,同时仍在继续进程?也就是说,启动一个单独的任务,该任务执行长时间运行的代码段,同时捕获并记录错误。然后向用户返回一个值,表示事件已成功创建 我相信

我正在使用ASP.NET编写一个API,并且我有一些来自不同端点的可能长时间运行的代码。系统使用CQR和事件源。命令到达终点,然后使用MediatR作为事件发布。但是,处理程序可能会长期运行。因为一些传入的请求可能被发送到多个处理程序。此过程可能需要比AWS允许的12秒更长的时间才能返回错误代码

是否有一种方法可以将响应返回给调用者,以表明事件已创建,同时仍在继续进程?也就是说,启动一个单独的任务,该任务执行长时间运行的代码段,同时捕获并记录错误。然后向用户返回一个值,表示事件已成功创建

我相信ASP.NET每次调用时都会启动一个新实例,如果返回一个值,旧实例是否会死掉,从而终止任务

我在这里可能有很多错误,这是我从互联网上收集到的知识,但我可能误解了文章


谢谢。

如果一个新线程正在运行长操作,它将保持“打开/活动”,直到它完成为止。您还可以将应用程序池配置为始终处于活动状态

有很多框架可以处理像Hangfire这样的长时间运行的任务


为了让用户随时了解任务的状态,您可以使用signar将通知推送到UI

是的,您应该将长时间运行的任务传递给后台进程并返回给用户。任务完成后,通知用户任何适合您站点的机制


但是不要启动一个新线程,您需要的是为此创建一个新线程,并使用它来管理您的请求。

谢谢您,这非常有帮助,特别是如果团队其他成员签署了额外的线程,或者正在寻找另一个线程,那么额外的框架可能会使用它。干杯也许信息是一种选择?你甚至可以选择服务巴士。如果是这样的话,你可以看看我的开源服务总线,它叫什么,尽管你可以从中挑选很多。