【发布时间】:2021-05-02 10:40:43
【问题描述】:
在 .Net 5 Web API 中,我想运行一个发送大量电子邮件和 SMS 的后台任务。 我知道我可以创建一个继承自 BackgroundService 的服务,然后在 Startup.ConfigureServices 方法中将其添加到 DI 容器中,如下所示:
services.AddHostedService<EmailAndSmsService>();
但这会立即运行服务 - 即在应用程序启动时。 当 API 收到来自前端的请求时,我想运行该服务。即在控制器的操作方法中。
我一直在查看 Microsoft 文档中的“使用托管服务的后台任务”,如果我没记错的话,这就是我需要做的(查看标题为“在后台任务中使用范围服务”的部分"):
这是正确的吗?我是否基本上需要创建两项服务,一项执行实际工作,另一项调用执行实际工作的服务?我走对了吗?
谢谢
【问题讨论】:
-
您的文档中有一个工作队列的概念,让服务启动并等待工作完成对我来说似乎是合理的。
标签: c# asp.net-core .net-core background-service asp.net-core-hosted-services