我可以相信 Microsoft BackgroundService 永远存在吗?

Can i trust Microsoft BackgroundService to be always alive?

我正在使用 blazor 构建多人视频游戏。

这款游戏非常基础,可以通过网络浏览器玩。 艰苦的工作是让玩家之间的实时交流成为可能。我以前用过像 red5 这样的套接字服务器。

今天,我想使用 Microsoft 工具 Blazor 和 signalr 构建此视频游戏。

我的问题是我在服务器端需要一些线程。该线程将管理游戏逻辑。我试图创建一个 BackgroundService 任务。它工作正常。我可以通过 signalr hub 与玩家交流。但我对 BackgroundService 的某些东西感到害怕:它们附加到 http 服务器进程。有时 IIS 会终止并创建新进程。那么我如何确定我的 BackgroundService 将永远存在? (即使没有播放器连接,例如在晚上)。我如何确定我的 BackgroundService 不会被 IIS 杀死和重新创建?

我尝试使用 kestrel 网络服务器并将其置于 nginx 代理之下。我的 BackgroundService 永远不会被杀死。但我想知道 kestrel 是否设计用于同时处理大量 Web 客户端...

是否有 BackgroundService 对象的替代品?我想创建一个单独的程序,但我更喜欢整体方法...

非常感谢

我认为如果您要求的话,您的网络应用程序不会自动重启。它重新启动的唯一时间是部署或手动重新启动或 stop/start。所以我认为对于轻负载使用后台服务是安全的。

但如果您打算进行任何类型的缩放,我建议您查看 Hangfire