You are here

public function JobScheduler::dispatch in Job Scheduler 8.3

Same name and namespace in other branches
  1. 8.2 src/JobScheduler.php \Drupal\job_scheduler\JobScheduler::dispatch()

Dispatches a job.

Executes a worker callback or if schedule declares a queue name, queues a job for execution.

Parameters

JobSchedule $job: A $job entity as passed into set() or loaded.

Throws

\Exception Exceptions thrown by code called by this method are passed on.

Overrides JobSchedulerInterface::dispatch

1 call to JobScheduler::dispatch()
JobScheduler::perform in src/JobScheduler.php
Perform periodic jobs.

File

src/JobScheduler.php, line 105

Class

JobScheduler
Manage scheduled jobs.

Namespace

Drupal\job_scheduler

Code

public function dispatch(JobSchedule $job) {
  $info = $this
    ->info($job
    ->getName());
  if (!empty($info['queue name'])) {
    $queue_name = 'job_scheduler_queue:' . $info['queue name'];
    if (\Drupal::queue($queue_name)
      ->createItem($job
      ->id())) {
      $this
        ->reserve($job);
    }
  }
  else {
    $this
      ->execute($job);
  }
}