You are here

public function DatabaseQueue::createItem in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Queue/DatabaseQueue.php \Drupal\Core\Queue\DatabaseQueue::createItem()
  2. 9 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;
}