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 :

Exécution d'un script extrèmement long en arrière plan


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Jérémie A.
    Profil pro
    Inscrit en
    Août 2008
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 270
    Points : 450
    Points
    450
    Par défaut Exécution d'un script extrèmement long en arrière plan
    Bonjour,

    Je vous expose le problème un petit peu tordu que je rencontre :

    Je dois à la volée générer plusieurs dizaines (voir centaines) de millier de documents (en PDF, RTF ou CSV). Bien sûr, je ne peux pas demander à mon client de cliquer sur "générer" et d'attendre pendant plusieurs dizaines de minutes (voir plusieurs heures) le temps que tout se fasse (chaque document étant un texte à trou se remplissant avec les infos en provenance de la DB, cela prend du temps).
    Je voudrais donc que par exemple, au dessus d'un certains nombres de document, une file d'attente se crée, et le script continue à tourner, mais en arrière tâche.

    Est ce que la solution exprimée ici (set_time_limit() et ignore_user_abort()) vous semble une idée viable ? Auriez vous d'autres solutions ?

    A noter que j'ai le même problème pour la gestion de la newsletter. Il y a trop d'inscrits pour pouvoir le faire en une traite. Je dois découper l'envois en phase avec une file d'attente.

    Merci à vous,


    Jérémie

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    Par défaut
    Bonjour,
    Juste une proposition:
    1. Le client demande sa liste. L'inscrire dans la base de données.
    2. Une tâche cron à un moment où tu estimes que ton serveur est allégé qui génères ces fichiers.
    3. Une fois que les fichiers sont générés, envoyer un mail au client lui demandant de télécharger les fichiers avec un délai max. Au bout de ce délai, vérifié par une tâche cron, les fichiers sont supprimés et même peut-être même un autre délai avant que le même client puisses faire une autre requête.

    Avantages:
    - Pas d'attente côté navigateur client
    - Si ton hébergeur ne te permets pas de gérer les cron jobs. Pas moyen.

    Inconvénients :
    - Taille des fichiers sur le serveur

    A toi de voir

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 116
    Points : 55
    Points
    55
    Par défaut
    utilise une tache cron, cela me semble le plus approprié !

  4. #4
    Membre averti
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 412
    Points
    412
    Par défaut
    salut,

    tu peut également passer par le binaire php via exec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec("php tonscript.php &")
    J'utilise cette methode sur un outils emailing et cela fonctionne bien.

    @+

    Mic
    Toutes mes références en ligne : http://www.developpeur-web-php.fr

  5. #5
    Membre confirmé Avatar de Jérémie A.
    Profil pro
    Inscrit en
    Août 2008
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2008
    Messages : 270
    Points : 450
    Points
    450
    Par défaut
    Merci pour vos différentes pistes, je vais explorer cela, bien que l'idée de l'exec me plait pas mal.

Discussions similaires

  1. vbscript exécuter une partie du script en arrière plan
    Par gilles81 dans le forum VBScript
    Réponses: 7
    Dernier message: 14/12/2010, 14h07
  2. Réponses: 2
    Dernier message: 13/05/2009, 18h37
  3. Réponses: 1
    Dernier message: 01/03/2006, 11h27
  4. Réponses: 18
    Dernier message: 15/02/2006, 13h51
  5. Réponses: 1
    Dernier message: 15/02/2006, 11h49

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