@Override protected void addToExecuteQueue(QueueSet queueSet, OneTimeTaskWrapper task) { verifyOneTimeTaskQueueSet(queueSet, task); super.addToExecuteQueue(queueSet, task); }
@Override protected void addToScheduleQueue(QueueSet queueSet, TaskWrapper task) { if (task instanceof OneTimeTaskWrapper) { verifyOneTimeTaskQueueSet(queueSet, (OneTimeTaskWrapper)task); } else if (task instanceof RecurringTaskWrapper) { RecurringTaskWrapper recurringTask = (RecurringTaskWrapper)task; if (queueSet != recurringTask.queueSet) { throw new IllegalStateException("QueueSet mismatch"); } if (task instanceof RecurringDelayTaskWrapper) { task = new StrictRecurringDelayTaskWrapper(task.task, recurringTask.queueSet, recurringTask.nextRunTime, ((RecurringDelayTaskWrapper)recurringTask).recurringDelay); } else { task = new StrictRecurringRateTaskWrapper(task.task, recurringTask.queueSet, recurringTask.nextRunTime, ((RecurringRateTaskWrapper)recurringTask).period); } } else { throw new UnsupportedOperationException("Unhandled task type"); } super.addToScheduleQueue(queueSet, task); }