You are here

function simple_sitemap_cron in Simple XML sitemap 8.3

Same name and namespace in other branches
  1. 8.2 simple_sitemap.module \simple_sitemap_cron()
  2. 4.x simple_sitemap.module \simple_sitemap_cron()

Implements hook_cron().

File

./simple_sitemap.module, line 145
Main module file containing hooks.

Code

function simple_sitemap_cron() {

  /** @var \Drupal\simple_sitemap\Simplesitemap $generator */
  $generator = \Drupal::service('simple_sitemap.generator');
  if ($generator
    ->getSetting('cron_generate')) {
    $interval = (int) $generator
      ->getSetting('cron_generate_interval', 0) * 60 * 60;
    $request_time = \Drupal::service('datetime.time')
      ->getRequestTime();
    $generation_in_progress = $generator
      ->getQueueWorker()
      ->generationInProgress();
    $state = \Drupal::state();
    if ($interval === 0 || $generation_in_progress || $state
      ->get('simple_sitemap.last_cron_generate', 0) + $interval <= $request_time) {
      if (!$generation_in_progress) {
        $state
          ->set('simple_sitemap.last_cron_generate', $request_time);
      }
      $generator
        ->generateSitemap(QueueWorker::GENERATE_TYPE_CRON);
    }
  }
}