You are here

public function DatabaseQueue::releaseItem in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::releaseItem()
  2. 10 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::releaseItem()

Releases an item that the worker could not process.

Another worker can come in and process it before the timeout expires.

Parameters

$item: The item returned by \Drupal\Core\Queue\QueueInterface::claimItem().

Return value

bool TRUE if the item has been released, FALSE otherwise.

Overrides QueueInterface::releaseItem

File

core/lib/Drupal/Core/Queue/DatabaseQueue.php, line 158

Class

DatabaseQueue
Default queue implementation.

Namespace

Drupal\Core\Queue

Code

public function releaseItem($item) {
  try {
    $update = $this->connection
      ->update(static::TABLE_NAME)
      ->fields([
      'expire' => 0,
    ])
      ->condition('item_id', $item->item_id);
    return $update
      ->execute();
  } catch (\Exception $e) {
    $this
      ->catchException($e);

    // If the table doesn't exist we should consider the item released.
    return TRUE;
  }
}