我创建了一个在Ubuntu 14.04计算机上作为守护进程运行的.NET Core控制台应用程序.
我想在不强制服务的情况下停止服务,能够处理kill事件.
我怎样才能做到这一点?
我正在 docker 中开发一个多容器应用程序。其中一项服务是一个长时间运行的 C# 控制台应用程序,它基本上对数据库进行一些轮询并将数据发送到 e 服务器。我只是通过添加以下语句来保持服务运行:
while(true);
Run Code Online (Sandbox Code Playgroud)
现在我正在考虑将此服务更改为 .NET Core 工作服务(甚至是 windows 服务,因为我只在 windows 主机上使用 windows 容器)。我已经阅读了一些关于 worker 服务优点的文章,但是当涉及到容器化应用程序时,它们似乎都已经过时了,因为我的容器无论如何都是作为一种“后台服务”运行的(而且我每个容器/图像只使用一个服务)。所以我的问题是:
与在 docker 中运行控制台应用程序相比,在 docker 中运行核心工作服务有什么好处或缺点吗?
更新:对于“工作人员服务”,我指的是 .NET Core 3.x 中可用的新工作人员服务模板:https : //www.stevejgordon.co.uk/what-are-dotnet-worker-services