code: public synchronized void     replace(QueueGroups group, Activity activity, long delay, TimeUnit unit)
      {
          ActivityHolder  holder = new ActivityHolder(activity, TimeUnit.MILLISECONDS.convert(delay, unit));
          DelayQueue<ActivityHolder> queue = queues.get(group);
          queue.remove(holder);
          queue.offer(holder);
      }
docs: Replace the given activity in the given queue. If not in the queue, adds it to the queue. The activity
  runs after the specified delay (the delay of the previous entry, if any, is ignored)
  
  @param group the queue - all activities within a queue are executed serially
  @param activity the activity
  @param delay the delay
  @param unit the delay unit