You are here

public function TaskRunner::getPendingTasks in Webform Scheduled Tasks 8.2

Get a list of pending tasks ready to be executed based on the schedule.

Return value

\Drupal\webform_scheduled_tasks\Entity\WebformScheduledTaskInterface[] A list of tasks ready to execute based on the schedule.

Overrides TaskRunnerInterface::getPendingTasks

File

src/TaskRunner.php, line 75

Class

TaskRunner
A task runner used for executing scheduled tasks.

Namespace

Drupal\webform_scheduled_tasks

Code

public function getPendingTasks() {

  // A task is only considered "scheduled" when the actual interval details
  // have been set.
  $storage = $this->entityTypeManager
    ->getStorage('webform_scheduled_task');
  $query = $storage
    ->getQuery();
  $query
    ->exists('interval.amount');
  $query
    ->exists('interval.multiplier');

  // Pending tasks are ones where time has exceeded the next run date.
  return array_values(array_filter($storage
    ->loadMultiple($query
    ->execute()), function (WebformScheduledTaskInterface $scheduled_task) {
    return !$scheduled_task
      ->isHalted() && $scheduled_task
      ->getNextTaskRunDate() < $this->time
      ->getRequestTime();
  }));
}