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

CodeIgniter PHP Discussion :

Envoi de mail automatique à la fin d'une enchère


Sujet :

CodeIgniter PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut Envoi de mail automatique à la fin d'une enchère
    Bonjour,

    Actuellement je développe un site d'enchère et je bloque sur l'envoi de mail automatique à la fin de l'enchère.

    Pour chaque enchère, j'ai dans ma base de données une date / heure de fin de l'enchère.

    Comment puis-je, en PHP, envoyer un mail automatiquement (sans actions humaine) quand le temps de l'enchère est écoulé ?

    Il y a bien les tâches CRON qui permettraient de lancer un script toutes les 5/10min et de vérifier quelles sont les enchères terminées et envoyer un mail, mais est-ce une bonne solution ?

    J'attends vos réponses/propositions avec impatience.

    D'avance merci.


    Cartmanez64

  2. #2
    Membre actif Avatar de sebest777
    Inscrit en
    Septembre 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 16
    Par défaut
    Oui je pense que la tache Cron est une solution très viable.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    Malheureusement je ne vois aucun autre moyen.

    Si quelqu'un à d'autres idées n'hésitez pas

  4. #4
    Membre actif Avatar de Ethan 0x21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut
    Salut Cartmanez64,


    Non cron n'est absolumment pas une bonne solution car 2 points :
    -Granularité de temps limité à la minute (perte de précision)
    -Consommation de fragment de ressources CPU et RAM pour l'invocation du script alors qu'il n'y a pas de fin d'enchére effective à l'instant T d'invocation


    La meilleur solution est de passer soit par la commande "at" de linux qui permet d'executer en 1 fois à un instant T futur une commande (donc au début de l'enchére il faut ajouter une régle at <durée_enchére> <commande>) cependant on notera au passage que la granularité de temps de AT est également la minute donc on perd en précision, ou sinon il y a la commande "sleep" qui permet une granularité proche des millisecondes et donc de déclencher précisément en heures minutes et secondes voulu le script de gestion de fin d'enchére.

    PS : Ne pas oublier d'envoyer en "background" de la commande shell_exec via le "&" le sleep OU at, aussinon la page risque de rester bloquer tout le long de l'enchére...


    Jespére avoir répondu à ta question,

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    Merci pour ta réponse Ethan.

    Avec cette solution il faut lancer la commande pour chaque enchère si j'ai bien compris. Or le but est de rendre la tâche automatique. De plus, la date de fin d'une enchère peut changé.

    Exemple :

    Au moment de la création de l'enchère la date de fin est 27.05.2015 à 11h55

    Si un membre enchéris alors qu'il reste moins de 5min (reste 1min 30sec), le temps restant de l'enchère est remis à 5min.

    Donc si vous avez d'autres idées n'hésitez surtout pas.

  6. #6
    Membre actif Avatar de Ethan 0x21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut
    Je ne vois pas ou est le probléme Cartmanez64,

    le lancement de la commande est automatique (appelé lors de la création de l'enchére avec passation de en parametre du script invoqué de l'id de l'enchere et pourquoi pas de la date de fin prevue), pour le fait qu'il y est un potientiel changement de date de fin possible, il suffit simplement que le script PHP invoqué lors de la fin de l'enchére initiale contrôle dans la base de donnée la date effective de fin de l'enchére, si elle différe avec la date prévu alors il relance une commande "at" avec la nouvelle date et se kill, aussinon il continu son exécution.

    Ce processus est déjà moin couteux en terme de performance que d'utiliser CRON toute les N minutes.

Discussions similaires

  1. Envoie mail automatique en fonction d'une date
    Par ju3979 dans le forum Macros et VBA Excel
    Réponses: 39
    Dernier message: 29/06/2009, 15h07
  2. Envoie de mail automatique depuis une page ASP
    Par ravidat dans le forum ASP
    Réponses: 3
    Dernier message: 30/05/2009, 14h25
  3. Envoi e-mail automatiquement à une date precise
    Par sooprano dans le forum Langage
    Réponses: 10
    Dernier message: 23/11/2008, 22h03
  4. [DDE]envoi de mail automatique selon le résultat d'une requête
    Par celiaaa dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 10/04/2007, 20h10
  5. Réponses: 14
    Dernier message: 17/11/2005, 18h16

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