php中的多线程数据库操作


multithreaded database operation in php

我有一个名为域的表。它有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中多线程化吗。

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

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