线上系统 遇到quarts 任务在定时时间内执行不完
比如10分钟一次的任务执行不完 后面起来的quarts任务线程会阻塞前面的任务
导致任务越来越慢
如果这个任务有循环的入口,比如每次从后台抓300条数据处理,
可以函数开始设置一个时间点
void quartsWork(){
time begin ;
boolean needEnd =false ;
/ / 300条数据执行
for(i .. ){
执行300条数据 遍历
...
}
if( 判断是否接近10分钟 如果快到了){
结束本次任务
needEnd =true ;
break ;
}else{
再取300条执行,
}
}
z这样通过时间判断 是否结束,给下次任务让路