由于我写了一个api接口,这个接口在别人调用的时候需要立即返回成功,所以我的async方法里面就不等待某个服务的处理了。
但是发现如果这个服务报了异常,比如空指针异常。整个程序就停止了。 VS调试也是一样,点击继续调试,他会关掉整个运行的项目
模拟抛异常如下:
我们用 asp.net core 多年,没有遇到过因未捕获异常造成程序崩溃。
虽然不捕获异常不会造成崩溃,但是还是建议捕获异常并写入日志,不然异常发生时你不知道。
对于你的这个应用场景,可以考虑使用 Coravel 的队列功能 https://docs.coravel.net/Queuing/
@dudu: 好的,谢谢dudu啦, 其实上面的那个问题是我猜疑的 。因为 我们现在有把asp.net core 部署到k8s上,偶尔会出现容器重启的情况,还能复现这种情况。就是有一个接口异常了,会导致容器重启一次。不知道dudu有没有遇到容器重启的情况。
@天空的湛蓝: 容器重启有多种原因,比如健康检查失败、CPU或者内存消耗超限等等,建议排查一下是不是因为 LINQ 查询或者 EF Core 配置问题造成加载全表数据从而引起内存超限。
@dudu: 好的