发表于: 2017-08-07 10:48:40

1 1050



今天完成的事情:

1、前台的 get/jobInfo/search 接口响应速度实在太慢(3700ms)。想了一个办法,用Spring监听器,在项目启动时将一些常用数据提前读取好(所有的公司标签关系表、标签表,最后形成一个Map<Long, List<String>的数据结构,也就是一个公司ID对应的标签中文名列表),存到session里。

所以有了监听器后再启动项目,一些常用的数据就已经被提前读取好了,测了几次接口访问,速度都在200ms内。

可我实在是一个粗心大意的 人,没考虑到一件很重要的事,那就是公司、标签这些数据是随时会变的,当有公司和标签的增删改查情况发生时,数据的变动是肯定是不会反映到项目启动时监听器已经读好的数据中的,难道每次添加公司都需要重启服务器吗?

所以解决问题的最好办法还是缓存。

public class InitListener implements ServletContextListener {


@Override
   public void contextInitialized(ServletContextEvent sce) {
WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());

       JobService jobService = (JobService) ac.getBean("jobService");

       CompanyService companyService = (CompanyService) ac.getBean("companyService");

       CompanyTagService companyTagService = (CompanyTagService) ac.getBean("companyTagService");

       TagService tagService = (TagService) ac.getBean("tagService");

// 取出所有的 companyTag
List<Long> companyTagIds = companyTagService.getCompanyTagIds(0, Integer.MAX_VALUE);

List<Long> tagIds = tagService.getTagIds(0, Integer.MAX_VALUE);

//  取出所有的标签   idTagMap
List<Long> tagIds = tagService.getTagIds(0, Integer.MAX_VALUE);

for (Long cId : cIds) {

List<CompanyTag> companyTagList1 = (List<CompanyTag>) cIdcompanyTagMap.get(cId);

   if (null != companyTagList1 && companyTagList1.size() > 0) {
tagNameList = new ArrayList<>();
       for (CompanyTag cTag : companyTagList1) {

Long tagId = cTag.getTagId();
           String tagName = idTagNameMap.get(tagId);
           tagNameList.add(tagName);
       }

}
cIdTagNameMap.put(cId, tagNameList);
}


2、本来计划今天demo的,但在排练的时候接口报了错,导致延期。

测试后台的 添加公司、添加职位接口

3、准备下次小课堂,“maven的模块”。打算讲解maven聚合和继承的区别。


明天计划的事情:

1、确保demo通过。

遇到的问题:

1、复盘中因为每个人都有自己的任务安排,有些同样重要的事情被别人做了,比如部署,打tag。这些我目前都还没有实际操作过。

2、不久几个师弟就该做到任务3和4了,感觉他们会踩到一些我没遇上的错,好慌。

收获:

1、抛出异常后被catch捕获,此异常等同于被解决,不会影响代码的运行。

2、添加数据时需通过自己写的接口来添加,不能直接在数据库里手动添加。

进度:开始时间:2017.07.15

    预计demo:2017.08.08

    是否有延期风险:有

    禅道链接:http://task.ptteng.com/zentao/project-task-262-unclosed.html





返回列表 返回列表
评论

    分享到