项目纪实

时间是一味强大的药剂,会让人忘记一切。在没忘记此次项目开发及部署之前,把此次开发和部署的重要信息及细节记录下来,以便日后查阅。

此次开发涉及4个部分,分别是:小程序前端、小程序后端java、图像处理端python1、图像处理端Python2.

值得一提的是:前三个解决方案:

小程序前端:

小程序端涉及的问题主要集中在js前端的不稳定性上。由于不小心用了最新版(不是稳定版)的小程序开发工具,导致很多诡异的问题,比如:无法在调试器里选中页面元素、无法命中debugger,后端发送过多的data到前端后,前端(疑似崩溃)没有任何反应,也没有办法在debugger处停下来。另外,如果前端页面需要显示图片列表,并且采用base64输出,那么会由于太多的字符串导致前端无法响应。

说起来几句话的事情,但从问题出现到实际完成,却是曲折漫漫,其中滋味,自己品咂。

小程序后端:

当我兴冲冲将项目(别人写的)打包成war并在tomcat中运行时,发现无法调通api,经过排查发现启动类没有继承:SpringBootServletInitializer(-_-||),修改为正确的写法:

public class Application extends SpringBootServletInitializer { 

  public static void main(String[] args) { SpringApplication.run(Application.class); }
}

另外,部署时tomcat9和tomcat10差异很大,10无法调通暂时搁置,采用tomcat9终于部署成功。

图像处理端:

1.在刚刚部署后,运行发现uWSGI输出错误日志:

--- no python application found, check your startup logs for errors ---

2.日志输出的时间总比服务器时间早几个小时,奇怪!

日志输出时间问题暂时搁置,毕竟不是主要问题。对于输出错误,第一感觉:程序没有启动,难道是python虚拟环境组件没有按照好,于是重装虚拟环境及相关组件。由于在安装mysql时漏掉mysql-community-devel-5.7.35-1.el7.x86_64.rpm,导致安装requirements.txt时报错:

Error: Package: 1:mariadb-devel-5.5.68-1.el7.x86_64 (os)
           Requires: mariadb-libs(x86-64) = 1:5.5.68-1.el7

于是各种搜索,安装均无法顺利通过。忽然发现一篇文章:centos7安装mysql-devel出现包依赖问题,仔细研究发现是我在安装mysql时没有安装此组件造成,安装随之顺利通过。

安装完组件,继续运行项目,发现输出依旧如此,然后发现日志上方显示:

ModuleNotFoundError: No module named '*******'

然后又一番搜索,各种答案都有,但仔细审题发现自己的uwsgi文件中不是写了这个模块:********嘛!原来是模块名字写错了,经过纠正,问题顺利解决!悔不该不看完整日志,导致重新安装了一遍程序,浪费了许多时间!

继续运行程序,发现无法找到参数****路径,自己在另一台上测试,ok,在本机测试也ok,难道是python在不同环境下的表现不稳定??,转念一想,Python作为商业软件断然不可发生这样低级的错误。随仔细观察发现在用postman调用时,路径后面多了一个回车符,-_-||,于是去掉回车符,此关过已。

继续测试,发现程序报错500,这又是啥问题?难道是代码有问题?在程序加日志输出,但加这些代码需要熟悉并花费一定的时间才行,时间紧迫,怎样才能快速知道问题呢?转念又一想,是不是配置文件不对造成的?!打开一看,果然如此,由于重新拷贝的项目文件,导致忙中出错,忘记改配置文件。于是随改完配置文件,500错误顺利解决。

在改的时候,随发现时区未修改,于是改为Aisa/Shanghai,顺手解决日志输出时间不对(总比目前时间早)的问题。

总结:

以上就是系统部署时所遇到林林总总的问题,其实总结下来,发现并没有多少有价值的难题,大多都是忙中出错(急于部署),疏于观察所致。所以通过此事也得出一个结论:不要怀疑自己的能力,也不要有病乱投医,认真观察现象,观察配置既能解决大半问题,至于属于报错部分的提示,给予具体对待即可。

通过这次磕磕绊绊的上线,感觉:人生之路,需要修行不断才行。处变不惊,冷静对待,才是上上之选!

posted @ 2021-09-20 18:47  Shapley  阅读(131)  评论(0)    收藏  举报