1、打断点与不打断点 的执行结果不一样
原因:在执行方法的时候所需要的参数在获取的时候需要一段时间,而debug的时候是一步一步执行代码,时间很充足,而当程序正常执行的时候由于执行的时间很快,某一个或一些参数没有获取到就直接执行了此方法,由此导致执行结果就会出现和debug时候的执行结果不一致的问题
解决方法:在执行这个方法之前让程序停一会儿,给获取需要的参数所执行的代码足够的时间
代码:
//线程休眠1000毫秒
Thread.sleep(1000);
2、jenkins部署之后,dev环境和本地运行结果不一致
原因:在保证代码已提交、分支部署正确、项目构建成功的情况下,那么就是部署的镜像构建失败
以我为例:rancher上面启动镜像,是新的成功之后,才会移除旧的;然后用的配置文件和本地的不一样;本地配置文件修改后,未同步至dev,所以启动失败;镜像就没有刷新,一直用的是之前的
解决方法:查看dev日志,同步配置文件
3、服务使用IP注册到eureka,读取的是本地虚拟机的虚拟网卡IP
原因:win r打开cmd,ipconfig,注册的IP是读取到第一个
解决方法:禁用虚拟机网卡,或者在配置中指定IP前缀
代码:
# 多网卡指定IP
spring.cloud.inetutils.preferred-networks=192.168.0
注意:本地服务器运行可以这么搞,但是其他环境duck不必
本文探讨了程序在打断点与不打断点执行时结果不同的原因,主要在于参数获取时间问题。解决方法是在执行关键方法前加入延迟。另外,jenkins部署后dev环境与本地运行不一致可能是镜像未更新或配置文件不同步。检查日志并同步配置是解决之道。此外,服务注册Eureka时可能使用了错误的本地IP,需禁用虚拟机网卡或指定IP。
991

被折叠的 条评论
为什么被折叠?



