[php]time out

Bonjour!
Je m'adresse aux programmeurs expérimentés...
J'ai un problème et j'espère que vous pourrez le résoudre!
Voila, en fait je exécuter du code en php mais comment faire pour qu'un autre code s'exécute en background et continue même quand le programme php se termine?
Si quelqu'n sait VRAIMENT comment faire, ça serait super sympa de votre part de me dire comment car je galère pour trouver.
Merci d'avance à toux ceux ou celles qui voudront bien me réponde!

Aurélie

11 réponses

  1. waouh !!!! du multi tache en php!!! ben ouais, là je laisse faire les experts. Et si jamais il y en qui y arrive, promis je lui offre le champagne !
    0
    1. Contributeur
      C'est sur en PHP, ce n'est pas implémenté, il te faut passer par un autre langage (ou peut etre la version 5 de PHP ?)

      ++
      0
      1. ou peut etre la version 5 de PHP ?

        je ne crois pas, j'ai commencé avec cette version, et je n'ai rien trouvé dedans qui ressemblait à du multi tache.

        mais bon, je suis loin d'être un érudit, donc à voir...
        0
        1. je ne veux pas forcément faire le deuxième programme en php. Vous proposez quoi comme langage?Comment faire?
          0
          1. Contributeur
            Language C ou C++, au choix.
            Mais les prog que tu souhaite lancer ne sont pas des script PHP j'espère ?
            0
          2. Contributeur
            (je laisse la main à Luffy car je dois y aller)

            ++
            0
          3. si ton OS est linux tu peux, apres avoir ecrit ton code en c ou script bash, etc..., l'appeler en mettant ds ton code php:

            system('nom_de_to_prgm')!

            ça te convient ?
            0
        2. oki, ++ kij ;-)

          alors, une solution possible serait de réaliser un script cgi en c/c++ tout autre langage qui peut gérer le multi-tache.
          0
          1. je suis sur mac.
            je connaissais cette fonction system(), mais si je l'intègre dans mon prog en php est ce que ça s'écutera en background?
            0
            1. Contributeur
              Non, je ne crois pas que la commande corresponde pour ce genre de chose, a moi que l'on puisse mettre sous mac le '&' apres le programme qu'on souhaite lancer..
              $> macommande &

              Sinon,moi je te conseil la même chose que Luffy.
              ++
              0
              1. Le PHP suis un systeme de lecture qui s'paelle le DOM en gros il lit le code de bas en haut en 1 seul passage
                Il s'arete sur les requete quil doit effectuer une fois terminer il passe a la suivante si la premiere ses bien passer ton systeme multi-tache coté serveur ou client ? si ses client comme le di juice utilise l'ajax ( javascript ) si ses coter serveur alors la ses une autre paires de manches ;)
                0
                1. Si c'est possible, il faut just lire la documentation.
                  Une extension existe, elle s'appelle PCNTL et permet de faire des forks de processus, au niveau système.
                  Ca permet d'appeler une page, de lancer un processus externe, d'aller sur une autre page de voir l'état du processus par exemple, et enfin sur une dernière page de voir le résultat du processus.
                  L'ajax c'est bien, mais qu'est-ce qui se passe si je ferme mon navigateur...
                  0
                  1. Contributeur
                    Merci W pour ce renseignement,

                    Si coté serveur:
                    Effectivement il y a ce module PCNTL qui semble bien sympa.
                    Un petit lien pour le coup : https://www.php.net/manual/fr/book.pcntl.php

                    Si coté client:
                    Ajax, en lancant les scripts de façon Assynchrone pour ne pas attendre le retour.
                    Que le navigateur soit fermé suite à l'activation du script ne changera strictement rien: en mode synchrone, il s'agit du javascript qui attends l'exécution du script PHP distant (ou autre type de script) et non l'inverse. Le mode assynchrône règlera la question du lancement de plusieurs tâches via Ajax sans attendre que les précédentes soient terminées.
                    0