Skip to content
Snippets Groups Projects

Issue #3128763 :Unique queue.

Open Rakesh Kumar Regar requested to merge issue/redis-3128763:3128763-unique-queue into 8.x-1.x
4 files
+ 61
0
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 36
0
<?php
namespace Drupal\redis\Queue;
/**
* Unique Redis queue implementation using PhpRedis extension backend.
*
* @ingroup queue
*/
class UniquePhpRedis extends PhpRedis {
/**
* {@inheritdoc}
*/
public function createItem($data) {
$record = new \stdClass();
$record->data = $data;
$record->qid = md5(serialize($data));
// We cannot rely on REQUEST_TIME because many items might be created
// by a single request which takes longer than 1 second.
$record->timestamp = time();
if (!$this->client->hsetnx($this->availableItems, $record->qid, serialize($record))) {
return FALSE;
}
$start_len = $this->client->lLen($this->availableListKey);
if ($start_len < $this->client->lpush($this->availableListKey, $record->qid)) {
return $record->qid;
}
return FALSE;
}
}
Loading