task-parallel-library - Web API中的长期任务

标签 task-parallel-library async-await asp.net-web-api

这是我的问题:我需要在ApiController中调用多个第3方方法。这些方法的签名为Task DoSomethingAsync(SomeClass someData, SomeOtherClass moreData)。我希望这些调用在ApiController将数据发送回客户端之后继续在后台运行。 DoSomethingAsync完成后,我想进行一些日志记录,也许将一些数据保存到文件系统中。我怎样才能做到这一点?我更喜欢使用asyny / await语法。

最佳答案

Stephen描述了为什么在ApiController中启动本质上长时间运行的即发即弃任务是一个坏主意。

也许您应该创建一个单独的服务来执行那些即发即弃的任务。该服务可以是不同的ApiController,也可以是队列后面的工作器,任何可以独立托管并具有独立生存期的东西。

这将使不同任务生命周期的管理变得更加容易,并将长期运行任务的顾虑与ApiController的核心职责分开。

关于task-parallel-library - Web API中的长期任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17577016/

相关文章:

asp.net-core - ASP.NET Core 3 添加路由前缀

c# - 配置 TaskCompletionSource 的任务的延续行为

c# - 等待不调用我的方法,它永远不会返回

c# - 并行执行存储过程

c# - 如何链接调用,使用响应作为另一个调用的输入

flutter - 创建数据库时 I/flutter ( 9532) : Binding has not yet been initialized,

javascript - 异步等待 Jquery ajax 回调?

c# - 通过队列消息进行负载均衡时如何处理自动生成的 ID?

asp.net-web-api - 从 NSwag swagger 中过滤架构

c# - await Task.Factory.StartNew(() => vs Task.Start; await Task;