在數據採集的過程中,會有很多次請求.每個請求要發送的信息無外乎都有一個關鍵的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的隊列長度來判斷程序的執行結果.