复兴网站制作百度账号客服人工电话
第一天
主要写的是后端管理系统
完成一个应急的需求
项目已经成型,并且可以展示,但是数据信息是死的,需要在短时间内应急将他动起来
需求:动态表格展示
第一次的问题
最初想法:完成一个定时任务,每3s解决一次更新一次数据库数据
问题:前端5s请求一次,后端3s更新一次接口。那么请求的时候我线程处于睡眠状态,那么也就是3s后将数据返回,那么首次接口请求的3s延迟肯定会降低用户体验。
解决办法:后端不写定时任务了,前端那边利用settimout完成定时请求
第二次的问题
最初想法:后端更新数据库数据是使用的设备的id
问题:设备相同,但是数据信息是不相同的,前端是根据返回的数据渲染到页面上的,那如果根据id把所有数据都进行修改的话,那么前端拿到的就是一条直线,所有的数据点都会重合
解决办法:未解决(数据库设计的太拉了)
第三次问题
最初想法:设备信息的表设计一条字段,判断这条字段是什么时候更新的
问题:需求需要展示前两小时的动态数据,如果保存的是更新的数据的话,那么这数据是有限的,并且这个项目后期会接upd,udp的设备那边的话,现在还没有拿到
第一种解决办法:每5s生成一条数据,然后存到数据库里
存在的问题:数据库如果每5s生成一次,那么数据量太过于庞大了,mysql承受不住这么大的压力
可以解决但是暂时不实现的办法:使用mongdb或者redis,定期的缓存,然后技术经理说更新磁盘的数据
最终的解决方案:前端那边生成随机数种子,页面进行渲染,然后请求后端的接口,后端接口把数据存储
个人疑惑:这和后端每5s生成一条数据存到数据库有什么区别,不是都会造成数据库数据量过于庞大么
第四次问题
个人解决方案:前端那边一直在更新数据,但是不要调去我这边的后端接口,页面进行改变的时候把数据存储到数据库里,那么更新的次数是用户请求一次,数据库添加一次数据
存在的问题:前端那边的生命周期存在问题,如果用户直接把页面关闭了,那么这条数据还没有存到数据库里,数据就丢失了
解决方案:上面那种,生成一个随机数,就请求一次接口,把数据存储过来
个人看法:这种方式实现的方式并不好,因为一直在请求接口这种行为就应该用更好的办法进行优化,但是没办法,没想到更好的办法
第五次问题
问题:后端这边更新之后,前端拿到的是最新的数据信息。这条数据信息是的最新数据在折线图的第一个点
解决方案:还未解决,等待和前端沟通
第六个问题
技术经理那边给了一个dll的文件,需要实现和java调去c文件
问题:只有一个dll,没有找到办法看里面的源代码,很多专业性的名次参数太过于抽象,需要一些简单的事例帮助理解,但是并没有拿到
解决方案:跟经理沟通给一些帮助理解源文件,明天会安排,另外java调取dll是可以的,采用的是jni(但尚未实践)
补充问题
本应该是第一个,但是没时间了,就补充一下
方法:使用的是git clone 方法将git项目拉到本地
问题:前端项目有两个分支,一个默认的master还有一个dev,那么使用gitclone拉取的是master分支,但真正的项目在dev里面
解决方案:直接使用vscode进行切换即可(webstrom右下角,vscode左边配置)
总结
项目最开始说的使用websocket去实时获取数据,但是时间来不及了,只能写假数据了。另外,硬件方面还没有拿到,所以那个解决不着急写,但是需要自己在这之前学习websocket,netty,udp相关知识
另外项目部署是需要docker