/** * Queues task for execution according to its priority. * * @param task the task to be executed. */ public void submitHeatbeat(Task task) { task.activate(true); heartBeatQueue[coreThread.runIndex].accept(task); }
/** * Queues specified task using tasks dead line time. * * @param task the task to be queued. * @return TaskExecutor for the scheduled task. */ public void accept(Task task) { if((activeIndex+1)%2==0) { if(!task.isInQueue0()) { taskList[0].offer(task); task.storedInQueue0(); } } else { if(!task.isInQueue1()) { taskList[1].offer(task); task.storedInQueue1(); } } }
/** * Adds task to the chain. * * @param task * @param offset */ public void add(Task task) { synchronized(LOCK) { //terminated task will be selected immediately before start task.setListener(this); this.task[wi] = task; wi++; } }
/** * Retrieves the task with earliest dead line and removes it from queue. * * @return task which has earliest dead line */ public Task poll() { Task result=null; if(activeIndex==0) { result=taskList[0].poll(); if(result!=null) result.removeFromQueue0(); } else { result=taskList[1].poll(); if(result!=null) result.removeFromQueue1(); } return result; }
public void run() { while(active) { current=null; while(current==null) { try { current=waitingTasks.take(); } catch(Exception ex) { logger.warn("Could not poll waiting task in timely fashion. Will keep trying."); } } current.run(); coreThread.notifyCompletion(); } }
public void run() { if (this.isActive) { try { perform(); //notify listener if (this.listener != null) { this.listener.onTerminate(); } } catch (Exception e) { logger.error("Could not execute task " + this.taskId + ": "+ e.getMessage(), e); if (this.listener != null) { listener.handlerError(e); } } } }
public void run() { while(active) { current=null; while(current==null) { try { current=criticalTasks.take(); } catch(Exception ex) { } } current.run(); criticalThread.notifyCompletion(); } }
/** * Queues task for execution according to its priority. * * @param task the task to be executed. */ public void submit(Task task,Integer index) { task.activate(false); taskQueues[index].accept(task); }