php in background exec() function
I made this script to test the execution of PHP as a background process
foreach($tests as $test) {
exec("php test.php ".$test["id"]);
}
as suggested in php process background and How to add large number of event notification reminder via Google Calendar API using PHP? and php execute a background process
But the script does not run faster than when it was all in one script without the addition of test.php.
What am I doing wrong?
Thanks in advance!
Solution 1:
exec()
will block until the process you're exec'ing has completed - in otherwords, you're basically running your 'test.php' as a subroutine. At bare minimum you need to add a &
to the command line arguments, which would put that exec()'d process into the background:
exec("php test.php {$test['id']} &");