Authored by 胡古飞

fix AutoDownGradeByOverTime

... ... @@ -14,21 +14,21 @@ import com.yoho.search.service.downgrade.IDowngrade;
*/
public class AutoDownGradeByOverTime implements IDowngrade {
private ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
private ScheduledExecutorService scheduledExecutorService;
private AtomicInteger overTimeCount = new AtomicInteger(0);// 当前超时次数
private int overTimeThreshold;// 超时次数阀值
private int lastPeroidOverTime = 0;// 上一个时间段的超时次数
private int lastPeroidOverTime = 0;//上一个时间段的超时次数
public AutoDownGradeByOverTime(int periodInSecond,TimeUnit timeUnit,int overTimeThreshold) {
public AutoDownGradeByOverTime(int periodInSecond, TimeUnit timeUnit, int overTimeThreshold) {
this.overTimeThreshold = overTimeThreshold;
scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
scheduledExecutorService.scheduleAtFixedRate(new ClearOverTimeCount(), 1, periodInSecond, timeUnit);
}
@Override
public boolean needDowngrade() {
int overTime = Math.max(lastPeroidOverTime, overTimeCount.intValue());
return overTime> overTimeThreshold;
return overTime > overTimeThreshold;
}
@Override
... ...