queue = []; $this->idSequence = 0; } /** * {@inheritdoc} */ public function createItem($data) { $item = new \stdClass(); $item->item_id = $this->idSequence++; $item->data = $data; $item->created = \Drupal::time()->getCurrentTime(); $item->expire = 0; $this->queue[$item->item_id] = $item; return $item->item_id; } /** * {@inheritdoc} */ public function numberOfItems() { return count($this->queue); } /** * {@inheritdoc} */ public function claimItem($lease_time = 30) { foreach ($this->queue as $key => $item) { if ($item->expire == 0) { $item->expire = \Drupal::time()->getCurrentTime() + $lease_time; $this->queue[$key] = $item; return $item; } } return FALSE; } /** * {@inheritdoc} */ public function deleteItem($item) { unset($this->queue[$item->item_id]); } /** * {@inheritdoc} */ public function releaseItem($item) { if (isset($this->queue[$item->item_id]) && $this->queue[$item->item_id]->expire != 0) { $this->queue[$item->item_id]->expire = 0; return TRUE; } return FALSE; } /** * {@inheritdoc} */ public function createQueue() { // Nothing needed here. } /** * {@inheritdoc} */ public function deleteQueue() { $this->queue = []; $this->idSequence = 0; } }