关闭时重新启动asp.net核心应用程序

时间:2020-07-09 09:24:30

标签: asp.net .net asp.net-core asp.net-web-api

我有一个在CentOS Web主机上运行的ASP.NET Core 2.1 Web API,并且希望该API保持运行,以防万一该进程已被OS终止或由于内部致命异常而终止

我当前的设置

我有一个bash脚本,它经常检查与api匹配的运行进程。如果找不到,它将运行dotnet <myapi>.dll ...并重新启动api。确实可以,但是有点混乱,因为我需要针对不同的api环境(测试,产品等)执行多个cron作业,并且在api死机与cron作业运行以重新启动它之间可能会有一些延迟。对于不同的环境,bash脚本中也存在偏差。

选项2

我最近偶然发现了IApplicationLifetime(我知道有一个更新的版本,但是我使用的是.NET Core 2.1),它是ApplicationStopped事件。我很想在应用程序停止时简单地注册一个委托并重新启动它?这样,我不会污染我的crontab,我可以立即做出反应,而不必等待cron作业开始。

选项2是否有任何缺点? .NET Core世界中的其他人如何处理这种情况,在这种情况下您想保持api的生命(直到您不这样做)?

谢谢!

0 个答案:

没有答案