有另一个项目的业务,会往redis的一个list不断push数据 我这边需要做的,就是有数据就取出来,然后做业务处理 请问怎么做比较好?
用这个 https://www.workerman.net/plugin/12
这个list是另外一个项目在往里写,我这边没法控制,也不能改它的代码。。让它像文档里那样的格式给我投递数据
定时器呗
https://github.com/phpredis/phpredis#blpop-brpop
阻塞读 即可
while($data=$redis->blpop("key",600)){ // 取到数据 $data 进行处理,再次循环 // 600s内未获取到,继续 }
定时器一秒处理一次就好,不要用while死循环。
使用while(true) 里面使用阻塞读取就可以了,CPU不会猛增,超时也会重新进入下次获取
用这个
https://www.workerman.net/plugin/12
这个list是另外一个项目在往里写,我这边没法控制,也不能改它的代码。。让它像文档里那样的格式给我投递数据
定时器呗
https://github.com/phpredis/phpredis#blpop-brpop
阻塞读 即可
定时器一秒处理一次就好,不要用while死循环。
使用while(true) 里面使用阻塞读取就可以了,CPU不会猛增,超时也会重新进入下次获取