Redis соединение внутри бесконечного цикла

Я создаю соединение Redis с помощью клиента phpredis

$redis = new Redis();
$redis->pconnect(loclahost, 6336, 2) ;
$redis->select(15);

Теперь я использовал объект $redis внутри бесконечного цикла.

while(true){
   ///using redis connection object.
}

Около 54 таких отдельных процессов были запущены, но один или два раза в день я получаю сообщение об ошибке типа "ошибка чтения при подключении".

Пожалуйста, помогите мне исправить это.

1 ответ

Решение

Я думаю, что-то вроде этого будет работать. ПРИМЕЧАНИЕ. Я не проверял это и не писал PHP довольно долгое время.

function redisConnection() {
    try {
        $redis = new Redis()
        $redis->pconnect(localhost, 6336, 2);
        $redis->select(15);
        $redis->ping();
        return $redis;
    } catch (Exception $e) {
        throw new Exception("Can not connect: " . $e->getMessage());
    }
}

$redis = redisConnection();
while (true) {
    try {
        $redis->ping();
    } catch {
        $redis = redisConnection();
    }
    // Rest of code
}
Другие вопросы по тегам