PHP Multiprocessing utilisant des fonctions de fourche intégrées


Exemple

Vous pouvez utiliser des fonctions intégrées pour exécuter des processus PHP sous forme de fourchettes. C'est le moyen le plus simple de réaliser un travail parallèle si vous n'avez pas besoin que vos threads se parlent.

Cela vous permet de placer des tâches exigeantes (comme télécharger un fichier sur un autre serveur ou envoyer un courrier électronique) à un autre thread pour que votre script se charge plus rapidement et puisse utiliser plusieurs cœurs. savoir ce que font les enfants.

Notez que sous Windows, une nouvelle invite de commande apparaîtra pour chaque fourchette démarrée.

master.php

$cmd = "php worker.php 10";
if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') // for windows use popen and pclose
{
    pclose(popen($cmd,"r"));
}
else //for unix systems use shell exec with "&" in the end
{
    exec('bash -c "exec nohup setsid '.$cmd.' > /dev/null 2>&1 &"');
}

worker.php

//send emails, upload files, analyze logs, etc
$sleeptime = $argv[1];
sleep($sleeptime);