6日到11日工作内容总结

这周开始做了上周导师布置的需求任务,做到今天上午才算是基本没有问题了,从对流程一无所知到现在有了一点模模糊糊的印象,我得记一下。免得以后做相似东西的时候出事情,这样也能提升我下次的开发速度吧。

这次做的东西应该只能算是一个拉取数据的功能的一部分吧。我完成的是拉取亚马逊店铺的SD数据到对应的数据表的这项工作。至于什么是SD数据,我并不清楚。只能说不知道做的是什么确实很头疼,照着人家之前写的代码做些调整加些内容上去能跑通就算成功……

简单总结一下流程,首先是整个模块分成两个部分,数据库部分和代码部分,代码是基于Laravel框架的,所以数据库中的表和Laravel框架交互基于的是App\Models里建的对应模型。还记得之前敲代码的时候完全不知道拉到的数据是怎么传到对应的表里的,这下了解了。

代码部分增加文件的部分除了上面提到的Models外,还有Dispatchers和Jobs文件夹,一个Dispatcher对应一个Job,调用的开始就是基于DisPatcher的,里面给我影响比较深的就是要配置一个工作类型的字符串,这个字符串的工作流程直接反映在数据库的一个工作配置表中,由一个json字符串来控制流程的细节等等,像是缓存、队列等等。Job应该是承接了上面的Dispatcher发布的任务,同时呢Job应该要在报告类型的Job中进行对应类型和Job的注册。最基本的类型Job继承了对应的基本Job,这里规定了工作的主要流程,这个基本Job继承了大类的Job,这里对相关的任务类型和类型Job进行记录。

说的可能有点乱,上图,最左边的是最低层,最右边的是最上层。

最底层没干什么,就是绑定关系,最上层也没干什么,就是声明了一下任务类型和返回报告类型,最大的增添内容主要是在中间这层,因为多加了一层类型,要重写好几个方法,添加报告类型,请求函数、状态函数重写……这部分还调用了接口函数完成了相关的报告内容拉取,来交给下一步处理后存到数据库。接口函数应该是在对应Service继承的基类中。目前来说应该不用我操心去写,导师大概会解决的。

上面说到了基本把报告拉下来了,之后的job方法会调用相关方法来处理函数。这块代码主要是在Services文件夹中,首先是一个判断,依据报告类型来选取对应的同步函数,然后同步函数会负责对应字段的处理组装等。这解答了如何保证拉到的数据能够按表中字段插入的问题。但是数据库操作相关的内容没有怎么能操作表呢?这部分代码在Repositories文件夹中,主要是相关的Laravel模型操作表的代码。包括查找和插入数据等。到这个地步基本上流程就算完成了,大功告成。

还早呢……调试代码的过程才是最恶心的。只能说,多做就有经验吧。感觉至少这几天dump和dd用的挺好的……还是要多测试,像是之前只跑一个测试账号,数据没问题,但是第二次换了个账号就崩了,结果发现有个字段是可选的……还好修改时间充裕,能抽时间改出来,不然后果不知道会是什么样的。😡

大概就是这样了。下周大概还是相似的工作,要是接口函数调好了写的应该会比这周快一点。