/
merexo
/
rediska
Обзор
Документация
Войти
/
merexo
/
rediska
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/Parts/DelayedQueue.php
29 строк
765 B
merexo
fix
03 дек 2022, 05:18
03 дек 2022, 05:18
2d890a2
Код
Авторство
О чём код?
<?php namespace Merexo\Rediska\Parts; class DelayedQueue extends RedisPart { public function push(string $queue_name, $payload, int $delay = 0) { return $this->redis->rawCommand('ZADD', $queue_name, 'NX', time() + $delay, serialize($payload)); } public function pop(string $queue_name) { $command = ' local val = redis.call(\'ZRANGEBYSCORE\', KEYS[1], 0, ARGV[1], \'LIMIT\', 0, 1)[1] if val then redis.call(\'ZREM\', KEYS[1], val) end return val '; return $this->redis->eval($command, [$queue_name, time()], 1); } public function len(string $queue_name) { return $this->redis->zCard($queue_name); } }