在数据采集的过程中,会有很多次请求.每个请求要发送的信息无外乎都有一个关键的KEY,多数是ID.
把这个ID写入到一个栈里面
$redis->lpush("idlist",$id);
然后在PHP代码里面写一个死循环
public function getinfos(){
while(true){
$id = $redis->lpop("idlist");
if($id){
//do something here/
}else{
break;
}
}
}
然后再在外面这样调用
function list_get_infos(){
for($i=0;$i<10;$i++){
exec("/usr/local/php/sbin/php","脚本地址");
}
}
如此一来,就会同时起10个进程来一起从这个redis的栈里面pop出id,并通过ID获取想要的数据.
注意:
1,首先进入死循环后,如果用过的变量一定要注意适时的销毁.也就是unset.否则可能会导致内存溢出.
2,代码里要做合适的容错处理,否则报错的话会出现进程提前结束.
3,适当的输出日志.方便错误的处理.并且可以通过查看redis的队列长度来判断程序的执行结果.