Fab*_*uez 5 c# background-service .net-core asp.net-core asp.net-core-hosted-services
在 .Net 5 Web API 中,我想运行一个发送批量电子邮件和 SMS 的后台任务。我知道我可以创建一个从 BackgroundService 继承的服务,然后将它添加到 Startup.ConfigureServices 方法中的 DI 容器,如下所示:
services.AddHostedService<EmailAndSmsService>();
Run Code Online (Sandbox Code Playgroud)
但这会立即运行服务 - 即在应用程序启动时。我想在 API 收到来自前端的请求时运行该服务。即在控制器的动作方法中。
我一直在查看 Microsoft 文档中的“带有托管服务的后台任务”,如果我没记错的话,这就是我需要做的(查看标题为“在后台任务中使用范围服务”的部分):
这样对吗?我是否基本上需要创建两个服务,一个执行实际工作,另一个调用执行实际工作的服务?我在正确的道路上吗?
谢谢
您需要查看“排队后台服务”,您可以在其中向它提交“作业”,它会在后台队列中执行这些作业。
工作流程是这样的:
BackgroundService这是关于它如何工作的一个非常冗长的解释:https : //stackoverflow.com/a/63429262/1204153
这是我不久前制作的一个示例:https : //github.com/sonicmouse/ComputationService
| 归档时间: |
|
| 查看次数: |
2598 次 |
| 最近记录: |