这是我的问题:我需要在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/