在后台运行瞬态服务(.NET Core)



我正试图使用Blazor Server编写一个客户订单跟踪器。

我想做的是在后台为创建的每一个新订单启动一项订单管理服务。该服务将跟踪与订单相关的各种实时信息,并应在订单完成时处理这些信息。

我可以通过注册服务来做到这一点:

services.AddTransient((;

然后我可以依赖性地将其注入一个剃刀组件:

@注入订单管理服务om_service

这将为每个订单创建一个新的实例,这很好。问题是,我不能指望用户为了保持Transient服务的作用域有效而保持页面打开。

根据我的观察,实例可以继续运行,但它的生存期还没有定义好。它可能很快无限期地终止(时间不足以完成作业(,也可能无限期地长时间运行(从而占用服务器的资源(。因为我没有提到它。

如何解决这个问题?如果瞬态服务不是解决方案,那么它会是什么?

谢谢!

查看.NET Core中托管的后台服务,听起来它可以为您工作。

即使用户离开您的网站,托管后台服务也会继续在您的服务器上运行。您可以有一个OrderManager托管服务,它可以指导每个订单完成整个过程,并在数据库中保持订单状态的更新,通过电子邮件向用户状态更新,或将更改推送到前端。

相关内容

  • 没有找到相关文章

最新更新