class Batch

Defines a batch queue handler used by the Batch API.

This implementation:

  • Ensures FIFO ordering.
  • Allows an item to be repeatedly claimed until it is actually deleted (no notion of lease time or 'expire' date), to allow multipass operations.

Stale items from failed batches are cleaned from the {queue} table on cron using the 'created' date.

Hierarchy

Expanded class hierarchy of Batch

File

drupal/core/lib/Drupal/Core/Queue/Batch.php, line 21
Definition of Drupal\Core\Queue\Batch.

Namespace

Drupal\Core\Queue
View source
class Batch extends System {

  /**
   * Overrides Drupal\Core\Queue\System::claimItem().
   *
   * Unlike Drupal\Core\Queue\System::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.
   */
  public function claimItem($lease_time = 0) {
    $item = db_query_range('SELECT data, item_id FROM {queue} q WHERE name = :name ORDER BY item_id ASC', 0, 1, array(
      ':name' => $this->name,
    ))
      ->fetchObject();
    if ($item) {
      $item->data = unserialize($item->data);
      return $item;
    }
    return FALSE;
  }

  /**
   * Retrieves all remaining items in the queue.
   *
   * This is specific to Batch API and is not part of the
   * Drupal\Core\Queue\QueueInterface.
   *
   * @return array
   *   An array of queue items.
   */
  public function getAllItems() {
    $result = array();
    $items = db_query('SELECT data FROM {queue} q WHERE name = :name ORDER BY item_id ASC', array(
      ':name' => $this->name,
    ))
      ->fetchAll();
    foreach ($items as $item) {
      $result[] = unserialize($item->data);
    }
    return $result;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Batch::claimItem public function Overrides Drupal\Core\Queue\System::claimItem(). Overrides System::claimItem
Batch::getAllItems public function Retrieves all remaining items in the queue.
System::$name protected property The name of the queue this instance is working with.
System::createItem public function Implements Drupal\Core\Queue\QueueInterface::createItem(). Overrides QueueInterface::createItem
System::createQueue public function Implements Drupal\Core\Queue\QueueInterface::createQueue(). Overrides QueueInterface::createQueue
System::deleteItem public function Implements Drupal\Core\Queue\QueueInterface::deleteItem(). Overrides QueueInterface::deleteItem
System::deleteQueue public function Implements Drupal\Core\Queue\QueueInterface::deleteQueue(). Overrides QueueInterface::deleteQueue
System::numberOfItems public function Implements Drupal\Core\Queue\QueueInterface::numberOfItems(). Overrides QueueInterface::numberOfItems
System::releaseItem public function Implements Drupal\Core\Queue\QueueInterface::releaseItem(). Overrides QueueInterface::releaseItem
System::__construct public function Constructs a System object.