You are here

public function Batch::claimItem in Drupal 9

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

Overrides \Drupal\Core\Queue\DatabaseQueue::claimItem().

Unlike \Drupal\Core\Queue\DatabaseQueue::claimItem(), this method provides a default lease time of 0 (no expiration) instead of 30. This allows the item to be claimed repeatedly until it is deleted.

Overrides DatabaseQueue::claimItem

File

core/lib/Drupal/Core/Queue/Batch.php, line 27

Class

Batch
Defines a batch queue handler used by the Batch API.

Namespace

Drupal\Core\Queue

Code

public function claimItem($lease_time = 0) {
  try {
    $item = $this->connection
      ->queryRange('SELECT [data], [item_id] FROM {queue} q WHERE [name] = :name ORDER BY [item_id] ASC', 0, 1, [
      ':name' => $this->name,
    ])
      ->fetchObject();
    if ($item) {
      $item->data = unserialize($item->data);
      return $item;
    }
  } catch (\Exception $e) {
    $this
      ->catchException($e);
  }
  return FALSE;
}