You are here

protected function JobScheduler::doUpdate in Job Scheduler 8.2

Updates a record to the database.

Parameters

array $job: The job to update.

$primary_keys: An array of the primary keys field names.

Throws

\Drupal\job_scheduler\JobSchedulerException Thrown if the job parameters are incorrect.

See also

\Drupal\job_scheduler\JobScheduler::reschedule()

\Drupal\job_scheduler\JobScheduler::reserve()

2 calls to JobScheduler::doUpdate()
JobScheduler::reschedule in src/JobScheduler.php
Re-schedules a job if intended to run again.
JobScheduler::reserve in src/JobScheduler.php
Reserves a job.

File

src/JobScheduler.php, line 307

Class

JobScheduler
Manage scheduled jobs.

Namespace

Drupal\job_scheduler

Code

protected function doUpdate(array $job, $primary_keys) {
  $fields = [];
  foreach ($job as $key => $value) {
    if (!in_array($key, $primary_keys)) {
      $fields[$key] = $value;
    }
  }
  $query = $this->database
    ->update('job_schedule')
    ->fields($fields);
  foreach ($primary_keys as $key) {
    if (!isset($job[$key])) {
      throw new JobSchedulerException(t('Could not find job parameter: @parameter', [
        '@parameter' => $key,
      ]));
    }
    $query
      ->condition($key, $job[$key]);
  }
  $query
    ->execute();
}