这段代码什么意思?
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);
}
}
}
}
跟数据库无关,是在通过网络请求分页获取
jkb
上的消息。