2010-09-29 3 views
1

J'ai un script qui prend un certain temps à s'exécuter. Existe-t-il un moyen d'exécuter du code ou d'appeler une fonction au cas où l'utilisateur fermerait la fenêtre alors que le script est toujours en cours d'exécution? Idéalement, je voudrais exécuter du code pour définir un statut comme un échec dans la base de données.Exécution d'une fonction si un script se bloque entre

+0

Quelque chose que j'ai trouvé: http://www.tuxradar.com/practicalphp/4/13/0 Je ne sais pas si c'est la bonne direction –

Répondre

2

Voir ignore_user_abort et connection_status.

Notez toutefois que vous ne pourrez peut-être détecter que le client s'est déconnecté lorsque vous envoyez des données. Donc, si vous utilisez la mise en mémoire tampon de sortie, vous pouvez seulement la détecter après l'exécution du script.

0

Vous pouvez diviser le traitement en petites parties, par exemple process.php? Part = 1,2,3 et ainsi de suite. Mais vous devez enregistrer l'état de la dernière progression du traitement dans un endroit sûr pour y accéder la prochaine fois que le script s'exécute et continue depuis l'endroit où il s'est terminé. Je ne peux pas dire grand chose parce que votre question doit être plus précise.