webman可以写一个脚本,死循环读取redis的list么?

Forsend

有另一个项目的业务,会往redis的一个list不断push数据
我这边需要做的,就是有数据就取出来,然后做业务处理
请问怎么做比较好?

962 5 1
5个回答

晚安。
  • Forsend 2022-09-01

    这个list是另外一个项目在往里写,我这边没法控制,也不能改它的代码。。让它像文档里那样的格式给我投递数据

Gin

定时器呗

  • 暂无评论
banro512

https://github.com/phpredis/phpredis#blpop-brpop

阻塞读 即可

while($data=$redis->blpop("key",600)){
 // 取到数据 $data 进行处理,再次循环
 // 600s内未获取到,继续

}
  • 暂无评论
2548a

定时器一秒处理一次就好,不要用while死循环。

  • 暂无评论

使用while(true) 里面使用阻塞读取就可以了,CPU不会猛增,超时也会重新进入下次获取

  • 暂无评论
年代过于久远,无法发表回答
🔝