php中的多线程数据库操作

时间:2015-02-12 10:14:25

标签: php multithreading

我有一个名为domains的表。它有2亿行。我想验证这些域名。以下是我的代码。但我想运行1000个线程,这样我就可以在一个线程中验证1000个域,因为我的表中有2亿行。

for ($i=0; $i<=1000; $i++){
   check_domains();
}

function check_domains(){
    $sql = "SELECT * FROM urls where status=0 limit 1";
    $result = mysql_query ($sql);
    $row = mysql_fetch_array ($result);
    //some validation and pinging the domain.
    if ($validated){
         $sql = "update urls set status=1 where id=".$row['id'];
         $result = mysql_query ($sql);
    }
} 

任何人都可以建议一些解决方案,使其在PHP中多线程。

1 个答案:

答案 0 :(得分:0)

您可以在脚本中使用pcntl_fork复制线程,并为每个子线程处理1000个条目。

http://php.net/manual/en/function.pcntl-fork.php