0

我正在尝试创建同一脚本的多个实例来帮助处理一个非常大的文件。下面是我的代码片段:

        for($i =0; $i<=5; $i++)
        {
            $offset = $i*$thread_data_size;
            $data_slice = array_slice($file_array,$offset,$thread_data_size);
            $data_serialized = serialize($data_slice);
            $data_serialized = str_replace('"', '\"',$data_serialized);

      $root ='/data/web/stage.shiprequest.com/public/async_processes/hubit/';
      $scriptfilename = $root.'phptest2.php';
      $cmd = "nohup nice -n 10 /usr/bin/php -c /etc/php.ini -f $scriptfilename \"$data_serialized\" \"$origacctcode\" \"$compcode\" \"$uid\" \"$mode\" \"$batchId\" \"$hubid\" > /dev/null 2>/dev/null & ";

            sleep(1);
            $output = shell_exec($cmd);
        }

问题是服务器要创建脚本的多个实例(phptest2.php),我必须在循环执行之间放置一个 sleep(1) 。如果我不设置 sleep(1),服务器只执行一次脚本,它是最后一个执行的脚本实例(即 $i=5 时调用的脚本实例)。这就好像我多次请求服务器执行同一个脚本的速度太快,它会覆盖我之前的请求........ 但是,如果服务器有足够的时间实例化第一个请求,它就不会覆盖之前的请求请求的脚本实例。

我不想在我的循环之间睡觉。有什么办法吗???. .

谢谢, 苏米特

4

0 回答 0