function DatabaseQueue::createItem

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::createItem()
  2. 10 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::createItem()
  3. 8.9.x core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::createItem()

File

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

Class

DatabaseQueue
Default queue implementation.

Namespace

Drupal\Core\Queue

Code

public function createItem($data) {
  $try_again = FALSE;
  try {
    $id = $this->doCreateItem($data);
  } catch (\Exception $e) {
    // If there was an exception, try to create the table.
    if (!$try_again = $this->ensureTableExists()) {
      // If the exception happened for other reason than the missing table,
      // propagate the exception.
      throw $e;
    }
  }
  // Now that the table has been created, try again if necessary.
  if ($try_again) {
    $id = $this->doCreateItem($data);
  }
  return $id;
}

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