package com.hqyg.disjob.monitor.alarm; import com.hqyg.disjob.monitor.pojo.JobProgressTimeInfo; public class AlarmCondition extends AbstractAlarmCondition{ public AlarmCondition(JobProgressTimeInfo observiable, Integer v) { super(observiable, v); } @Override public boolean isFinished() { int targetCount = getValue(); return caculeate() >= targetCount; } private int caculeate(){ JobProgressTimeInfo jptime = getObserviable(); int count = 0 ; /** * 如果完成时间已经收到了,但是接收时间和开始调度时间还没收到,我们就默认将他的时间设置为开始调度时间. */ if(jptime.getJobCompleteTime() > 0){ if(jptime.getJobRecvTime() == 0){ jptime.setJobRecvTime(jptime.getSchedulerStartTime()); } if(jptime.getJobBegingTime() == 0){ jptime.setJobBegingTime(jptime.getSchedulerStartTime()); } } if(jptime.getJobRecvTime() >0){ count++ ; } if(jptime.getJobBegingTime() >0){ count++; } if(jptime.getJobCompleteTime() > 0){ count++; } return count; } }