gpt4 book ai didi

docker - 如何在 .Net Core 可执行文件中监听来自 Docker 的信号?

转载 作者:行者123 更新时间:2023-12-02 01:13:16 29 4
gpt4 key购买 nike

我有一个用 .Net Core 编写的控制台应用程序。我将在 Docker 容器中运行它。我想在给出 docker stop 命令时优雅地停止进程,而不是让进程在做某事的过程中被杀死。有没有一种方法可以让我从控制台应用程序中监听这个信号?在使用容器之前,我只会让控制台应用程序监听要在控制台窗口中输入的内容。如果有办法让 docker 通过标准输入发送消息,我可以使用它,我只是对 Docker 了解不够,还不知道什么是可能的。

最佳答案

毕竟,我的解决方案最终是不使用控制台应用程序。我了解到,如果我创建一个 Web 项目,我可以通过网站的 Startup 中的 ApplicationStopping CancellationToken 判断容器何时请求关闭。因此,它不会让容器启动一个长时间运行的控制台应用程序,它只会托管一个没有 Web 内容的网站。该网站将启动我的长期运行进程,当容器向网站发送它正在关闭的信号时,我的进程可以正常停止。

public void Configure(IApplicationBuilder app
, IHostingEnvironment env
, IApplicationLifetime applicationLifetime)
{
applicationLifetime.ApplicationStarted.Register(ApplicationStarted);
applicationLifetime.ApplicationStopping.Register(ApplicationStopping);
applicationLifetime.ApplicationStopped.Register(ApplicationStopped);
}

关于docker - 如何在 .Net Core 可执行文件中监听来自 Docker 的信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43948001/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com