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 :

[Dates] Appeler des fonctions sans attendre leurs résultats


Sujet :

Langage PHP

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 53
    Points : 39
    Points
    39
    Par défaut [Dates] Appeler des fonctions sans attendre leurs résultats
    Bonjour

    je cherche un moyen de lancer des appels de fonctions en parallèle sans attendre leur résultats et passer outre les 30 secondes du max execussion time.
    En faire, j'ai stocké tout un tas de traitement que je dois faire sur mes base avec la date et l'heure ou les recurrence de ces traitements.
    Depuis mon routeur j'ai un cron qui fait un wget sur une page en php, laquelle doit lister les traitement, executer ceux qui ne le son pas encore.

    Seulement, dès que j'ai plusieurs gtos traitement à lancer à la suite, si le premier est suffisemment long per ex 25sec, le secnd va stopper avant la fin.

    En fait je voudrais pouvoir lancer les traitement en parralèle, un peu comme avec un fork en C.

    Si quelqu'un a une idée, je suis preneur...

  2. #2
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    et pourquoi tu ne limites pas à un seul traitement par appel de page PHP ? Tu fais un cron qui appelles ta page PHP toutes les minutes et comme ça au prochain appel, il effectuera le traitement suivant vu que le précédant, si j'ai bien compris ce que tu as dis, sera marqué comme "effectué"...

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    En effet, j'y ai bien pensé, mais le problème vient du lancement de plusieurs taches en simultané (je n'ai pas la main sur les ajoute de taches, ca depend des traitements à lancer !)

    Merci néanmoins pour cette réponse

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 53
    Points : 39
    Points
    39
    Par défaut
    Bonsoir

    Je vais apporter un précision sur ce que je voudrais faire.
    En fait, mon script principal doit pouvoir lancer plusieurs scripts sur des sites distants (scripts de maintenance assez longs à traiter)
    Ainsi, je pensais utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $f1 = fopen("http://site1","r");
    $result1  = fread($f1);
    $f2 = fopen("http://site2","r");
    $result2  = fread($f2);
    etc
    Seulement, comme mon traitement principal, (appel de la page) doit prendre 30 secondes maximal, et que j'ai une dizaines de sous traitements d'environs 10 secondes, j'ai le timeout le page principale qui bloque les derniers traitements.
    Je souhaite donc pour lancer les fopen sans avoir à attendre le retour de fread ou encore mieux, pouvoir lancer les ouvertures et lectures en parralèlle !

    Merci pour votre aide

  5. #5
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    il y a """surement""" une solution plus propre en faisant un script bash par ex mais, si c'est urgent, tu peux créer simplement une page HTML qui appelles par exemple ta page 10 fois avec des frames si tu as 10 traitements
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <frame scr="mapage.php?script_to_launch=1></frame>
    <frame scr="mapage.php?script_to_launch=2></frame>
    etc etc
    Je sais que certain vont rigoler... mais pourquoi pas lol !!!

    Allez je retourne dans le Tardis, je suis fatigué !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2003
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Slt,

    si j'ai bien compris, t'as un pb qui est lié au Multi-Threading en PHP, et tu dis que ton hébergeur active certaines fonctions et en désactive d'autres ... ben c'est simple essai de taper "multi threading en php" sur google, tu vas trouver un tas de trucs interressants.

    voici un article qui a attiré mon attention en passant : Multi-threading en PHP


  7. #7
    Membre actif Avatar de bigsister
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 314
    Points : 265
    Points
    265
    Par défaut
    olymat ton lien est KO et n'a pas grand chose à voir avec le multithreading (je suis redirigé vers http://fr.wikipedia.org/wiki/Hyperte...nsfer_Protocol c'est normal ?)

    Moi aussi j'ai trouvé ça, c'est un peu ma bidouille vu plus haut mais en associant PHP et AJAX :
    AJAX tourne en boucle est appelle une page PHP tant que celle-ci ne lui renvoie pas un "OK"

Discussions similaires

  1. Appel fonction sans attendre de réponse
    Par Nheil dans le forum Langage
    Réponses: 4
    Dernier message: 16/09/2011, 00h52
  2. appel de fonction sans récupération variable
    Par mussara dans le forum Langage
    Réponses: 2
    Dernier message: 22/06/2006, 11h10
  3. appel des fonctions d'un driver dans un programme en c
    Par richie25 dans le forum Windows
    Réponses: 5
    Dernier message: 10/01/2006, 08h27
  4. Réponses: 6
    Dernier message: 30/09/2005, 00h53
  5. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33

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