1
resposta

BLPOP não funciona corretamente

Sempre que eu chamo o comando BLPOP, ele automaticamente retira o elemento da esquerda e não espera o tempo. Até mesmo quando eu coloco pra esperar indefinidamente (BLPOP fila:confirma-email 0) ele executa o comando de LPOP.

127.0.0.1:6379> flushall
OK
127.0.0.1:6379> lpush "teste1" 10
(integer) 1
127.0.0.1:6379> lpush "teste1" 15
(integer) 2
127.0.0.1:6379> lpush "teste1" 20
(integer) 3
127.0.0.1:6379> blpop "teste1" 0
1) "teste1"
2) "20"
127.0.0.1:6379> lrange "teste1" 0 2
1) "15"
2) "10"
127.0.0.1:6379> lpush "teste1" 30
(integer) 3
1 resposta

Olá Pedro, tudo bem?

O comando blpop é utilizado para bloquear a conexão quando na lista fornecida não existir mais elementos para serem retornados. Como no exemplo que você disponibilizou, seria retornado os 3 elementos existentes na sua lista, quando não houvesse mais elementos a conexão seria bloqueada.

Executando o comando BLPOP

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software