我有一个ASP.NET Core Web应用程序,其中包含WebAPI控制器。我想要做的就是在某些控制器中启动后台进程,但是该控制器在任务完成之前应该继续返回。我不希望服务的使用者等待该任务完成。
我已经看过所有有关IHostedService和BackgroundService的帖子,但似乎都不是我想要的。此外,所有这些示例都向您展示如何设置事物,但没有展示如何实际调用它,或者我不理解一些内容。
我尝试过这些方法,但是在Startup中注册IHostedService时,它会立即运行。这不是我想要的。我不想在启动时运行任务,而是在需要时从控制器中调用它。此外,我可能有几个不同的任务,因此只注册services.AddHostedService()将无法工作,因为我可能有一个MyServiceB和MyServiceC,那么我如何从控制器中获取正确的服务(我不能注入IHostedService)?
总的来说,我看到的所有内容都是一堆杂乱无章的代码,而这似乎是一个非常简单的问题。我错过了什么?
我已经看过所有有关IHostedService和BackgroundService的帖子,但似乎都不是我想要的。此外,所有这些示例都向您展示如何设置事物,但没有展示如何实际调用它,或者我不理解一些内容。
我尝试过这些方法,但是在Startup中注册IHostedService时,它会立即运行。这不是我想要的。我不想在启动时运行任务,而是在需要时从控制器中调用它。此外,我可能有几个不同的任务,因此只注册services.AddHostedService()将无法工作,因为我可能有一个MyServiceB和MyServiceC,那么我如何从控制器中获取正确的服务(我不能注入IHostedService)?
总的来说,我看到的所有内容都是一堆杂乱无章的代码,而这似乎是一个非常简单的问题。我错过了什么?
IHostedService
,而是以某种方式向其发送消息。文档中的一个默认示例 - Queued background tasks(在这种情况下,Func<CancellationToken, Task> workItem
是消息)。 - Guru Stron