code: @Override
      public ScheduledFuture<?> schedule(Runnable task, Trigger trigger) {
          try {
              if (this.enterpriseConcurrentScheduler) {
                  return new EnterpriseConcurrentTriggerScheduler().schedule(decorateTask(task, true), trigger);
              } else {
                  ErrorHandler errorHandlerLocal = this.errorHandler != null ? this.errorHandler : TaskUtils
                          .getDefaultErrorHandler(true);
                  return new ReschedulingRunnable(task, trigger, this.scheduledExecutor, errorHandlerLocal).schedule();
              }
          } catch (RejectedExecutionException ex) {
              throw new TaskRejectedException("Executor [" + this.scheduledExecutor + "] did not accept task: " + task,
                      ex);
          }
      }
docs: {@inheritDoc}
  
  @see org.audit4j.core.schedule.TaskScheduler#schedule(java.lang.Runnable,
  org.audit4j.core.schedule.Trigger)