function Batch::claimItem

Same name in other branches
  1. 9 core/lib/Drupal/Core/Queue/Batch.php \Drupal\Core\Queue\Batch::claimItem()
  2. 8.9.x core/lib/Drupal/Core/Queue/Batch.php \Drupal\Core\Queue\Batch::claimItem()
  3. 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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.