私は、タスクを複数の部分に分割し、それぞれの部分を別々の子プロセスで実行するphpスクリプトを持っています。コードは次のようになります。phpいくつかのforkされたプロセスが動作し続ける
foreach($users as $k => $arr) {
if(($pid = pcntl_fork()) === -1) continue;
if($pid) {
pcntl_wait($status,WNOHANG);
continue;
}
ob_start();
posix_setsid();
dbConnect();
// do stuff to data
exit();
}
私は、Debianサーバ上のcrontabを使用して、このスクリプトを実行しているんだけど、問題は、いくつかのプロセスが実行中で、予備のメモリを保つあります。しばらくすると、サーバーのメモリがフラッディングされます。 すべてのプロセスが正しく終了するようにする方法を見つける必要があります。
おかげで、それが働いたたくさん親プロセスは、すべての子プロセスが終了して終了するまで待機します。 – abugnais