写的定时任务,日志总打到一半就开始重新打

我不叫彭于晏 2019-09-29 07:54:23
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println(n++);
Map<String, TempSportData> lastMap=new HashMap<>();
//发请求
String json=Utils.sendGet();
String str=json.substring(1, json.length()-1);
String arrStr[]= str.split("force");
System.out.println(arrStr.length);
Map<String,TempSportData> map=new HashMap<>();
if(arrStr.length > arrStr[0].length()) {
for(String s:arrStr){
System.out.println(s);
String objArr[]=s.split(",");
if(objArr.length>=7) {
TempSportData tsd=new TempSportData();
tsd.setForce(Integer.valueOf(objArr[0].split(":")[1]));
tsd.setKm(Double.valueOf(objArr[1].split(":")[1]));
tsd.setDevId(objArr[2].split(":")[1]);
tsd.setSpeed(Double.valueOf(objArr[4].split(":")[1]));
tsd.setCount(Integer.valueOf(objArr[6].split(":")[1]));
System.out.println(tsd.getDevId()+"-------"+tsd.getCount());
map.put(tsd.getDevId(), tsd);
}
}

}
if(lastMap.isEmpty()) {
lastMap.putAll(map);
return;
}
if(lastMap!=null && map!=null) {
for(String str1:map.keySet()) {
if(lastMap.get(str1)!=null) {
int res=map.get(str1).getCount()-lastMap.get(str1).getCount();
String printTime = new SimpleDateFormat("yy-MM-dd HH-mm-ss").format(new Date());
System.out.println(printTime+"----------!"+res);
if(res<=0) {
String log=printTime+map.get(str1).getDevId()+"---"+map.get(str1).getCount()+"-"+lastMap.get(str1).getCount();
System.out.println("错误日志!");
Utils.writeLog(new File(file),log);
}else{
System.out.println("正确日志!");
Utils.writeLog(new File(zhengquefile),printTime+map.get(str1).getDevId());
}
}
}
}
}
...全文
130 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不叫彭于晏 2020-10-26
  • 打赏
  • 举报
回复
引用 3 楼 qybao 的回复:
LZ描述的情况不是很清楚,推测 1.程序某个地方出异常了,所以任务没执行完,日志打不全,然后下一次任务开始也是同样的问题发生,所以感觉日志只打了一半就重新开始 2.不知道任务定时启动的方式是如何管理的,定时启动时间短,任务执行时间长,所以有可能旧任务还没执行完,新任务就启动了,同时把旧任务取消了,这样日志也没能打全
抛异常了,控制台没有打印出来。。
qybao 2019-10-02
  • 打赏
  • 举报
回复
LZ描述的情况不是很清楚,推测
1.程序某个地方出异常了,所以任务没执行完,日志打不全,然后下一次任务开始也是同样的问题发生,所以感觉日志只打了一半就重新开始
2.不知道任务定时启动的方式是如何管理的,定时启动时间短,任务执行时间长,所以有可能旧任务还没执行完,新任务就启动了,同时把旧任务取消了,这样日志也没能打全
usecf 2019-09-30
  • 打赏
  • 举报
回复
你调试看下 看看是不是那个条件不对 走其他流程了
oh_Maxy 2019-09-30
  • 打赏
  • 举报
回复
打到一半,是个啥概念呢?有没有具体的日志信息?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧