class Batch

Same name in other branches
  1. 9 core/lib/Drupal/Core/Queue/Batch.php \Drupal\Core\Queue\Batch
  2. 10 core/lib/Drupal/Core/Queue/Batch.php \Drupal\Core\Queue\Batch
  3. 11.x core/lib/Drupal/Core/Queue/Batch.php \Drupal\Core\Queue\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

Related topics

8 string references to 'Batch'
authorize.php in core/authorize.php
Administrative script for running authorized file operations.
BatchTestSimpleForm::submitForm in core/modules/system/tests/modules/batch_test/src/Form/BatchTestSimpleForm.php
Form submission handler.
drupal6.php in core/modules/migrate_drupal/tests/fixtures/drupal6.php
A database agnostic dump for testing purposes.
drupal7.php in core/modules/migrate_drupal/tests/fixtures/drupal7.php
A database agnostic dump for testing purposes.
hook_install_tasks in core/lib/Drupal/Core/Extension/module.api.php
Return an array of tasks to be performed by an installation profile.

... See full list

File

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

Namespace

Drupal\Core\Queue
View source
class Batch extends DatabaseQueue {
    
    /**
     * 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.
     */
    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;
    }
    
    /**
     * 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 = [];
        try {
            $items = $this->connection
                ->query('SELECT data FROM {queue} q WHERE name = :name ORDER BY item_id ASC', [
                ':name' => $this->name,
            ])
                ->fetchAll();
            foreach ($items as $item) {
                $result[] = unserialize($item->data);
            }
        } catch (\Exception $e) {
            $this->catchException($e);
        }
        return $result;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
Batch::claimItem public function Overrides \Drupal\Core\Queue\DatabaseQueue::claimItem(). Overrides DatabaseQueue::claimItem
Batch::getAllItems public function Retrieves all remaining items in the queue.
DatabaseQueue::$connection protected property The database connection.
DatabaseQueue::$name protected property The name of the queue this instance is working with.
DatabaseQueue::catchException protected function Act on an exception when queue might be stale.
DatabaseQueue::createItem public function
DatabaseQueue::createQueue public function
DatabaseQueue::deleteItem public function
DatabaseQueue::deleteQueue public function
DatabaseQueue::doCreateItem protected function Adds a queue item and store it directly to the queue.
DatabaseQueue::ensureTableExists protected function Check if the table exists and create it if not.
DatabaseQueue::garbageCollection public function Cleans queues of garbage. Overrides QueueGarbageCollectionInterface::garbageCollection
DatabaseQueue::numberOfItems public function
DatabaseQueue::releaseItem public function
DatabaseQueue::schemaDefinition public function Defines the schema for the queue table.
DatabaseQueue::TABLE_NAME constant The database table name.
DatabaseQueue::__construct public function Constructs a \Drupal\Core\Queue\DatabaseQueue object.
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2

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