public function DatabaseLogger::loadLatestLogEntries in Ultimate Cron 8.2
Load latest log entry for multiple jobs.
This is the fallback method. Loggers should implement an optimized version if possible.
Parameters
array $jobs: Jobs for which the log entries should be loaded.
array $log_types: Type of log messages to load.
Overrides LoggerBase::loadLatestLogEntries
File
- src/
Plugin/ ultimate_cron/ Logger/ DatabaseLogger.php, line 250  
Class
- DatabaseLogger
 - Database logger.
 
Namespace
Drupal\ultimate_cron\Plugin\ultimate_cron\LoggerCode
public function loadLatestLogEntries(array $jobs, array $log_types) {
  if ($this->connection
    ->databaseType() !== 'mysql') {
    return parent::loadLatestLogEntries($jobs, $log_types);
  }
  $result = $this->connection
    ->query("SELECT l.*\n    FROM {ultimate_cron_log} l\n    JOIN (\n      SELECT l3.name, (\n        SELECT l4.lid\n        FROM {ultimate_cron_log} l4\n        WHERE l4.name = l3.name\n        AND l4.log_type IN (:log_types)\n        ORDER BY l4.name desc, l4.start_time DESC\n        LIMIT 1\n      ) AS lid FROM {ultimate_cron_log} l3\n      GROUP BY l3.name\n    ) l2 on l2.lid = l.lid", array(
    ':log_types' => $log_types,
  ));
  $log_entries = array();
  while ($object = $result
    ->fetchObject()) {
    if (isset($jobs[$object->name])) {
      $log_entries[$object->name] = new LogEntry($object->name, $this);
      $log_entries[$object->name]
        ->setData((array) $object);
    }
  }
  foreach ($jobs as $name => $job) {
    if (!isset($log_entries[$name])) {
      $log_entries[$name] = new LogEntry($name, $this);
    }
  }
  return $log_entries;
}