在ASP.NET核心世界中使用本地/规范方法来实现Fire-and-forget

时间:2017-08-29 17:04:26

标签: c# asp.net-core asp.net-core-mvc .net-core

使用与websockets相关的编码,我发现目前还不清楚,如何正确处理长时间运行的后台进程或通过即发即弃语义执行的任务(这仍然是正确的min_alpha)因为DI范围,应用程序重启等可能存在一些缺陷。

因此,如果没有像ASP.NET Core 2.0

这样的奇特内容,在.NET Core世界中需要如何实现这类事情,这将是一件好事。

2 个答案:

答案 0 :(得分:1)

可能值得查看IHostedServiceBackgroundService类的MSDN开发者博客:

<强>要点:

  

IHostedService界面提供了一种便捷的启动方式   ASP.NET Core Web应用程序中的后台任务(在.NET Core 2.0中)   或者在任何进程/主机中(从带有IHost的.NET Core 2.1开始)。它的   主要好处是优雅取消的机会   在主机本身时清理后台任务的代码   关闭。

答案 1 :(得分:0)

我正在研究这几天。我在这里有一个类似的问题:

Asp.Net Core 2.0: Simple way to execute long running tasks and report progress

我找到了一种使用 QueueBackgroundWorkItem 的方法,但这在Asp.Net Core中不可用。

我发现在人们的答案中我唯一能够保持一致的是,在“IIS”之外需要进行“即发即忘”。在 Windows服务或类似 Azure Web作业

让您免于实施分布式架构的唯一简单方法是 Hangfire ,但对于关键操作似乎是不推荐的。