如果我不关闭服务总线队列客户端,进程停止了怎么办?

问题描述 投票:0回答:1

我试图在Azure AKS Kubernetes上部署一个永无止境的消息泵来处理服务总线队列消息,作为一个.NET Core控制台应用程序。

该应用程序将根据队列中的消息数量进行自动缩放,因此可能会部署更多的应用程序,当启动时,它们将连接到服务总线并启动RegisterMessageHandler。

自动缩放器也可能会拆掉应用程序,但是如果没有一个事件来向Console应用程序发出关闭信号,我将无法正确关闭队列来停止接收消息或停止处理消息。

如何在AKS上的.NET Core中处理这个问题?

asp.net-core kubernetes .net-core azureservicebus azure-aks
1个回答
1
投票

Pod关机时有两个信号可用。该 预止钩 可以被配置为触发 shell 命令或生成针对容器的 HTTP 请求。您还应该期望您的运行进程在 pod 停止之前收到一个 TERM 信号。

下面是一个 博文中介绍了一些关于连接TERM信号的基础知识。 通过实施 IApplicationLifetime 在Kestrel服务器的上下文中。

这篇文章有一个完整的端到端例子,介绍了Kestrel服务器上的以下内容 IApplicationLifetime的简单实现.

对于.NET 3.x.IHostApplicationLifetime 对于.NET 3.x,IHostApplicationLifetime 取代IApplicationLifetime。

© www.soinside.com 2019 - 2024. All rights reserved.