public void restart() { ttl = heartbeatTime * 600; scheduler.submitHeatbeat(this); }
@Override public long perform() { ttl--; if (ttl == 0) { log.info("Global hearbeat is still alive"); restart(); } else { scheduler.submitHeatbeat(this); } return 0; } }
@Override public void activate() { this.lastPacketData = scheduler.getClock().getTime(); this.startTime = scheduler.getClock().getTime(); output.start(); oobOutput.start(); if (this.postSpeechTimer > 0 || this.preSpeechTimer > 0 || this.maxRecordTime > 0) { scheduler.submitHeatbeat(this.heartbeat); } // send event fireEvent(recorderStarted); }
@Override public long perform() { final long currentTime = scheduler.getClock().getTime(); final long idleTime = currentTime - lastPacketData; // Abort recording operation if user did not speak during initial detection period if (preSpeechTimer > 0 && !speechDetected && idleTime > preSpeechTimer) { qualifier = RecorderEvent.NO_SPEECH; scheduler.submit(killRecording, PriorityQueueScheduler.INPUT_QUEUE); return 0; } // Abort recording operation if user did not speak for a while if (postSpeechTimer > 0 && speechDetected && idleTime > postSpeechTimer) { qualifier = RecorderEvent.SUCCESS; scheduler.submit(killRecording, PriorityQueueScheduler.INPUT_QUEUE); return 0; } // Abort recording if maximum time limit is reached final long duration = currentTime - startTime; if (maxRecordTime > 0 && duration >= maxRecordTime) { qualifier = RecorderEvent.MAX_DURATION_EXCEEDED; scheduler.submit(killRecording, PriorityQueueScheduler.INPUT_QUEUE); return 0; } scheduler.submitHeatbeat(this); return 0; }