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 :

Lancer des scripts les uns après les autres [PHP 5.0]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut Lancer des scripts les uns après les autres
    Bonjour,

    Je suis sous 1and1 mutualisé sans SSH ni tâches CRON possibles.
    J'ai un script qui créé des fichiers pdf (via html2pdf) mais ce script prend trop de mémoire sur le serveur et j'ai une erreur (memory limit). J'ai augmenté la mémoire via un php.ini au maximum autorisé. Cela ne suffit pas.

    Je souhaite donc créer plusieurs script exécuté l'un après l'autre qui crééront chacun une page (pas de pb de mémoire pour une seule page).

    L'utilisateur clic sur créér le pdf. Le premier script créé la page 1, libère la mémoire du serveur, passe la main au second script qui créé la page 2, libère la mémoire etc...

    Je n'ai aucune idée de quelles fonctions utiliser.

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Tu devrais faire ça avec Ajax, lancer les scripts de manière synchrone les uns après les autres ne va rien arranger.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut
    As tu une piste pour l'ajax ? Car le faire en asynchrone (Ajax je crois) ne me diras pas quand le précédent script est terminé.

    Comment s'y prendre en Ajax pour exécuter le script script.php toutes les minutes 20 fois (avec un paramètre passé) par exemples suite au clic d'un seul bouton ?

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    L'idée serait de générer le document page par page comme tu le suggère et de piloter ordonnancement des traitements avec JavaScript (quand une page est fini, on déclenche le trigger de la page suivante et ainsi de suite), on peut même afficher une barre de progression dans ce cas.

    En revanche, ça me parait difficile d'émuler un cronjob de cette façon.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut
    Tu dis: "Lancer les scripts de manière synchrone les uns après les autres ne va rien arranger." Peux tu m'expliquer cela ? La mémoire n'est pas libérée entre chaque script ?

    Ta solution sous entend que la personne doit rester devant son ordi et sur le site pendant la génération des pages. C'est assez pénalisant car si la personne se déconnecte.
    L'idéal serait que les pdfs soient générés puis de les envoyer par email.

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Tu dis: "Lancer les scripts de manière synchrone les uns après les autres ne va rien arranger." Peux tu m'expliquer cela ? La mémoire n'est pas libérée entre chaque script ?
    Si en effet, en revanche les temps d'exécution seront identiques et le chargement de la page sera bloqué le temps de compléter la génération du document. Ce qui ne sera pas le cas avec Ajax.

    En fait ton problème s'apparente à la création d'une queue de traitements en PHP capable d'être démarée de manière asynchrone. J'ai trouvé un article sur la question mais je doute que tu puisse le mettre en place techniquement car - comme beaucoup de solution de ce genre - il nécessite la mise en place de PCNTL...
    Bref, tu peux toujours jeter un oeil: http://www.shapeshifter.se/2008/08/0...tion-with-php/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Exécuter des .bat les uns après les autres
    Par devilsnake88 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 14/09/2022, 19h28
  2. Réponses: 4
    Dernier message: 04/02/2014, 16h38
  3. Réponses: 3
    Dernier message: 17/12/2007, 18h54
  4. Réponses: 32
    Dernier message: 28/08/2007, 19h57
  5. Lancer plusieurs batch les uns apres les autres
    Par n8ken dans le forum Administration système
    Réponses: 4
    Dernier message: 04/01/2007, 07h59

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