@Override
    public <T> boolean reschedule(
        TaskInstanceId taskInstanceId, Instant newExecutionTime, T newData) {
      String taskName = taskInstanceId.getTaskName();
      String instanceId = taskInstanceId.getId();
      Execution execution =
          taskRepository
              .getExecution(taskName, instanceId)
              .orElseThrow(() -> new TaskInstanceNotFoundException(taskName, instanceId));

      if (execution.isPicked()) {
        throw new TaskInstanceCurrentlyExecutingException(taskName, instanceId);
      }

      boolean success;
      if (newData == null) {
        success = taskRepository.reschedule(execution, newExecutionTime, null, null, 0);
      } else {
        success = taskRepository.reschedule(execution, newExecutionTime, newData, null, null, 0);
      }

      if (success) {
        schedulerListeners.onExecutionScheduled(taskInstanceId, newExecutionTime);
      } else {
        LOG.warn("Failed to reschedule task instance: {}", taskInstanceId);
      }
      return success;
    }
Will cause getScheduledExecutions(..) to return executions in priority order.
db-scheduler/src/main/java/com/github/kagkarlsson/scheduler/SchedulerClient.java