Same name and namespace in other branches
- 8.9.x core/lib/Drupal/Core/Queue/Batch.php \Drupal\Core\Queue\Batch
- 9 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
- class \Drupal\Core\Queue\DatabaseQueue implements DelayableQueueInterface, QueueGarbageCollectionInterface, ReliableQueueInterface uses DependencySerializationTrait
- class \Drupal\Core\Queue\Batch
Expanded class hierarchy of Batch
Related topics
File
- core/
lib/ Drupal/ Core/ Queue/ Batch.php, line 18
Namespace
Drupal\Core\QueueView 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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DatabaseQueue:: |
public | function | Constructs a \Drupal\Core\Queue\DatabaseQueue object. | |
DatabaseQueue:: |
constant | The database table name. | ||
DatabaseQueue:: |
public | function | Defines the schema for the queue table. | |
DatabaseQueue:: |
public | function |
Releases an item that the worker could not process. Overrides QueueInterface:: |
|
DatabaseQueue:: |
public | function |
Retrieves the number of items in the queue. Overrides QueueInterface:: |
|
DatabaseQueue:: |
public | function |
Cleans queues of garbage. Overrides QueueGarbageCollectionInterface:: |
|
DatabaseQueue:: |
protected | function | Check if the table exists and create it if not. | |
DatabaseQueue:: |
protected | function | Adds a queue item and store it directly to the queue. | |
DatabaseQueue:: |
public | function |
Deletes a queue and every item in the queue. Overrides QueueInterface:: |
|
DatabaseQueue:: |
public | function |
Deletes a finished item from the queue. Overrides QueueInterface:: |
|
DatabaseQueue:: |
public | function |
Delay an item so it runs in the future. Overrides DelayableQueueInterface:: |
|
DatabaseQueue:: |
public | function |
Creates a queue. Overrides QueueInterface:: |
|
DatabaseQueue:: |
public | function |
Adds a queue item and store it directly to the queue. Overrides QueueInterface:: |
|
DatabaseQueue:: |
protected | function | Act on an exception when queue might be stale. | |
DatabaseQueue:: |
protected | property | The name of the queue this instance is working with. | |
DatabaseQueue:: |
protected | property | The database connection. | |
Batch:: |
public | function | Retrieves all remaining items in the queue. | |
Batch:: |
public | function |
Overrides \Drupal\Core\Queue\DatabaseQueue::claimItem(). Overrides DatabaseQueue:: |