You are here

public function DatabaseQueue::garbageCollection in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::garbageCollection()
  2. 10 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::garbageCollection()

Cleans queues of garbage.

Overrides QueueGarbageCollectionInterface::garbageCollection

File

core/lib/Drupal/Core/Queue/DatabaseQueue.php, line 240

Class

DatabaseQueue
Default queue implementation.

Namespace

Drupal\Core\Queue

Code

public function garbageCollection() {
  try {

    // Clean up the queue for failed batches.
    $this->connection
      ->delete(static::TABLE_NAME)
      ->condition('created', REQUEST_TIME - 864000, '<')
      ->condition('name', 'drupal_batch:%', 'LIKE')
      ->execute();

    // Reset expired items in the default queue implementation table. If that's
    // not used, this will simply be a no-op.
    $this->connection
      ->update(static::TABLE_NAME)
      ->fields([
      'expire' => 0,
    ])
      ->condition('expire', 0, '<>')
      ->condition('expire', REQUEST_TIME, '<')
      ->execute();
  } catch (\Exception $e) {
    $this
      ->catchException($e);
  }
}