private void execDelayedProcedure(DelayedProcedure<TEnvironment> delayed) {
    // TODO: treat this as a normal procedure, add it to the scheduler and
    // let one of the workers handle it.
    // Today we consider ProcedureInMemoryChore as InlineChores
    Procedure<TEnvironment> procedure = delayed.getObject();
    if (procedure instanceof ProcedureInMemoryChore) {
      executeInMemoryChore((ProcedureInMemoryChore<TEnvironment>) procedure);
      // if the procedure is in a waiting state again, put it back in the queue
      procedure.updateTimestamp();
      if (procedure.isWaiting()) {
        delayed.setTimeout(procedure.getTimeoutTimestamp());
        queue.add(delayed);
      }
    } else {
      executeTimedoutProcedure(procedure);
    }
  }
Runs task on a period such as check for stuck workers.
@see InlineChore
hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/TimeoutExecutorThread.java