php cli覆盖前一个实例

时间:2013-09-16 21:41:02

标签: php shell

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

        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时调用的脚本实例)。这就好像我请求服务器多次执行相同的脚本太快,它会覆盖我以前的请求........但是,如果它有足够的时间来实例化第一个请求,服务器不会覆盖先前的请求请求脚本的实例。

我不想在我的循环之间睡觉。任何变通方法??! 。 。

谢谢,Sumit

0 个答案:

没有答案