web-dev-qa-db-fra.com

rendre l'exécution du script illimitée

J'ai besoin d'exécuter un script dans localhost (xampp) qui générera 14400 enregistrements et les ajoutera à la base de données. J'ai défini le max_execution_time = 50000000000, je ne sais pas si je peux le rendre illimité en le définissant sur 0 ou -1. Mais j’ai déjà essayé ce script avec max_execution_time à 50000000000 et pourtant il s’est arrêté à un moment donné. Je ne sais pas ce qui pourrait limiter le temps d’exécution. dois-je changer avant d'exécuter à nouveau ce script et cette fois pour terminer le travail?

44
TooCooL

Vous devrez le mettre à zéro. Zéro signifie que le script peut fonctionner à l'infini. Ajoutez ce qui suit au début de votre script:

ini_set('max_execution_time', 0);

Reportez-vous à la documentation PHP de max_execution_time

Notez que:

set_time_limit(0);

aura le même effet.

114
hek2mgl

Votre script est peut-être en train de s'arrêter, non pas à cause du délai d'attente de PHP, mais à cause du délai d'attente du navigateur que vous utilisez pour accéder au script (par exemple, Firefox, Chrome, etc.). Malheureusement, il existe rarement un moyen facile de prolonger ce délai et, dans la plupart des navigateurs, vous ne le pouvez tout simplement pas. Une option que vous avez ici est d'accéder au script sur un terminal. Par exemple, sous Windows, assurez-vous que l'exécutable PHP est dans votre variable de chemin et ensuite je pense que vous exécutez:

C:\path\to\script> php script.php

Ou, si vous utilisez le CGI PHP, je pense que c'est:

C:\path\to\script> php-cgi script.php

De plus, vous définiriez également ini_set('max_execution_time', 0); dans votre script, comme d'autres l'ont mentionné. Lorsque vous exécutez un script PHP de cette manière, je suis presque sûr que vous pouvez utiliser le vidage de la mémoire tampon pour indiquer périodiquement la progression du script au terminal si vous le souhaitez. Le plus gros problème que je pense avec cette méthode est qu’il n’ya vraiment aucun moyen d’arrêter le script une fois démarré, si ce n’est d’arrêter l’ensemble du processus ou du service PHP.

0
Peter Cullen