下面这段代码怎么理解?是往数据库里面添加数据的意思吗?

这段代码什么意思?

while (true) {
                param.put("access_token", token.getAccessToken());
                param.put("page", String.valueOf(count));
                String url = RequestUtil.getSpecifiedUrl(conf, "jkb.alert.messagesList.url", param);
                msgStr = HttpClientUtil.get(httpClient, url, null);
                log.debug("alert message is {}", msgStr);
                List<MsgContent> msgConList = JSON.parseArray(msgStr, MsgContent.class);
                
                if (msgConList != null && msgConList.size()>0) {
                    log.error("it can not fetch real information!");
                    for (MsgContent msg : msgConList) {
                        msg.setId(UUID.randomUUID().toString());
                        msg.setTimestamp(batchTime);
                    }
                    log.debug("task alert message is {}", JSON.toJSON(msgConList));
                    msgConTotalList.addAll(msgConList);
                }else{
                    log.warn("task alert message from jkb is null at this time");
                }
                
                if (msgConList.size() < 20) {
                    log.debug("this is the last page. the size of msgConList is {}", msgConList.size());
                    break;
                }
                count++;
            }

完整的代码

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MsgContentCollector extends CollectorJob {
    
    private MsgContentMapper msgContentMapper;
    private Config conf;
    private long batchTime;
    
    {
        if (msgContentMapper == null) {
            msgContentMapper = CommonUtils.getInstance(MsgContentMapper.class);
        }
        conf = CommonUtils.getConf();
    }
    
    @Override
    public void collectorData() {
        batchTime = System.currentTimeMillis();
        CloseableHttpClient httpClient = HttpClientUtil.getNoCookieClient();
        fetchMsgContents(httpClient);
    }

    private void fetchMsgContents(CloseableHttpClient httpClient) {
        String msgStr = null;
        try {
            AuthToken token = AuthTokenUtil.getAutherToken();
            Map<String, String> param = new HashMap<>();
            List<MsgContent> msgConTotalList = new ArrayList<>();
            int count = 1;
            while (true) {
                param.put("access_token", token.getAccessToken());
                param.put("page", String.valueOf(count));
                String url = RequestUtil.getSpecifiedUrl(conf, "jkb.alert.messagesList.url", param);
                msgStr = HttpClientUtil.get(httpClient, url, null);
                log.debug("alert message is {}", msgStr);
                List<MsgContent> msgConList = JSON.parseArray(msgStr, MsgContent.class);
                
                if (msgConList != null && msgConList.size()>0) {
                    log.error("it can not fetch real information!");
                    for (MsgContent msg : msgConList) {
                        msg.setId(UUID.randomUUID().toString());
                        msg.setTimestamp(batchTime);
                    }
                    log.debug("task alert message is {}", JSON.toJSON(msgConList));
                    msgConTotalList.addAll(msgConList);
                }else{
                    log.warn("task alert message from jkb is null at this time");
                }
                
                if (msgConList.size() < 20) {
                    log.debug("this is the last page. the size of msgConList is {}", msgConList.size());
                    break;
                }
                count++;
            }
            
            if (msgConTotalList != null && msgConTotalList.size()>0) {
                msgContentMapper.insertMsgContentList(msgConTotalList);
            }else {
                log.warn("task alert message from jkb is null");
            }
        } catch (Exception e) {
            AuthTokenUtil.checkAhtherToken(msgStr);
            log.error("get alert msgStr error",e);
        } finally {
            try {
                httpClient.close();
            } catch (IOException e) {
                log.error("close httpclient error",e);
            }
        }
    }

}
阅读 1.2k
1 个回答

跟数据库无关,是在通过网络请求分页获取 jkb 上的消息。

推荐问题