shcherbanich
@shcherbanich
Программист

Как реализовать очередь с указанием времени выполнения Redis?

Необходимо реализовать очередь на Redis да не простую, а с указанием времени выполнения определенных операций. Изучение проблемы показало, что в Redis можно выставлять время жизни ключа ( EXPIRE ), но вот как делать callback на это событие?
Или может быть данную проблему надо решать каким-то другим способом?
  • Вопрос задан
  • 1384 просмотра
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
redis.io/topics/notifications
SET notify-keyspace-events Ex
SUBSRCIBE __keyevent@0__:expired


$redisSub = new Redis() or die("Can't create to redis database instance!\n");
$redisSub->connect('localhost', 6379) or  die("Can't connect to redis database!\n");
$redisSub->select(2) or die("Can't select database!\n");
$redisSub->setOption(Redis::OPT_READ_TIMEOUT, -1);
$redisSub->config('SET', 'notify-keyspace-events', 'Ex');
$redisSub->subscribe(['__keyevent@2__:expired'], 'msg'); // db 2
function msg($redisSub, $chan, $msg)  {
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
He11ion
@He11ion
PHP-monkey
Использовать Beanstalk/gearman и не мучаться как вариант
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы