IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Lancer une tâche système sans bloquer l'exécution d'un script


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut [Système] Lancer une tâche système sans bloquer l'exécution d'un script
    Bonjour à tous,

    Je me retrouve face à un petit casse tête que j'ai du mal à résoudre.
    Mon principe est le suivant : j'ai un script php, qui est lancé par une tâche planifiée (donc via php.exe), qui effectue l'archivage de dossiers.

    Le souci, c'est que ce traitement est très long, et que je n'ai pas la possibilité d'influencer le temps d'exécution maximum du script.

    J'ai donc pensé à la solution suivante : une fois le traitement terminé, le script se rappelle, réinitialisant ainsi le délai d'exécution.
    Comme il s'agit d'une tâche planifiée, pas moyen d'utiliser une redirection javascript, je suis donc parti dans l'optique de faire une commande system() ou équivalent.

    C'est là où je me suis cassé les dents : il est précisé dans la doc de cette commande qu'il est nécessaire de rediriger la sortie du programme lancé pour ne pas bloquer le script lanceur.
    J'ai donc une syntaxe du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("[monChemin]\\php.exe [monFichier] >NUL");
    Le problème c'est que je n'ai pas l'impression que cet appel fonctionne correctement, puisque ma page se bloque sur cette commande.

    Je précise que mon serveur est un windows server 2000.

    Si vous avez des idées quant à l'écriture de cette fonction permettant de ne pas bloquer mon script, vous m'oteriez une belle épine du pied.

    Merci d'avance.
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Bonjour à tous,

    Finalement j'ai contourné mon problème, en créant une tâche planifiée lançant IE, ce qui permet d'attaquer directement la redirection en javascript.

    J'ai également trouvé une piste, qui peut servir pour ce genre de cas :
    un équivalent de fork
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

Discussions similaires

  1. [Système] lancer une application
    Par doudou1 dans le forum Langage
    Réponses: 1
    Dernier message: 03/07/2007, 19h09
  2. Lancer une commande système avec des "
    Par Caro-Line dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 15h17
  3. [Système] lancer une commande système
    Par rfufu dans le forum Langage
    Réponses: 4
    Dernier message: 17/06/2006, 16h12
  4. lancer une commande système avec jbuilder
    Par xs_nady dans le forum JBuilder
    Réponses: 1
    Dernier message: 28/03/2006, 04h54
  5. Lancer une commande système avec VC++
    Par xs_nady dans le forum MFC
    Réponses: 1
    Dernier message: 17/03/2006, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo