Exemple #1
0
 public ScheduledFuture<?> scheduleTask(String user, Runnable runnable, long delay) {
   synchronized (nearRealTimeOrderedTasksMap) {
     UserTasks tasks = getUserTasks(user);
     if (tasks == null) return null;
     ScheduledUserTask scheduledTask = new ScheduledUserTask(runnable, delay, null, null);
     tasks.addScheduledTask(scheduledTask);
     return scheduledTask.getScheduledFuture();
   }
 }
Exemple #2
0
 public void addNearRealTimeOrderedTask(String user, Runnable runnable) {
   synchronized (nearRealTimeOrderedTasksMap) {
     UserTasks tasks = nearRealTimeOrderedTasksMap.get(user);
     if (tasks == null) return;
     tasks.addTask(runnable);
     if (numberOfOrderedTasks == 0)
       nearRealTimeMainTaskFuture =
           scheduler.scheduleWithFixedDelay(
               nearRealTimeOrderedTask,
               NEAR_REAL_TIME_DELAY,
               NEAR_REAL_TIME_DELAY,
               TimeUnit.MILLISECONDS);
     numberOfOrderedTasks++;
   }
 }
Exemple #3
0
 public void removeUser(String user) {
   log.info("Removing user " + user);
   UserTasks tasks;
   synchronized (nearRealTimeOrderedTasksMap) {
     tasks = nearRealTimeOrderedTasksMap.remove(user);
   }
   if (tasks != null) {
     tasks.cancelAllScheduledTasks();
     tasks.waitForTasksCompletion();
   }
   synchronized (nearRealTimeOrderedTasksMap) {
     if (nearRealTimeOrderedTasksMap.size() == 0) {
       stop();
       return;
     }
   }
 }