Très grosse boucle en php
17 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
Très grosse boucle en php
Bonjour à tous !
J'avais posté hier à propos d'un script de mailing sur 120000 entrées dans ma base, il est tout simple :
Mon script s'arrete à 23583 tours, j'ai le mail() en commentaires, je voulais tester d'abord si mon script bouclait bien sur toutes mes entrées (g bien fait
)
Il me laisse ca comme trace :
Voilà, je comprends pas pourquoi il arrive pas à finir sa boucle surtout qu'au niveau processeur mon serveur se porte bien durant la boucle. Peut-etre avez-vous une idée sur la question ?
J'avais posté hier à propos d'un script de mailing sur 120000 entrées dans ma base, il est tout simple :
- Code: Tout sélectionner
require "./database.php";
$query = "SELECT * FROM mailing";
$result= MYSQL_QUERY($query);
if(mysql_error())
{ print "Erreur dans la base de données : ".mysql_error();
print "<br>Importation stoppée.";
exit();
}
$nb_emails = mysql_num_rows($result);
echo "<br> nb mails envoyés : $nb_emails <br>";
for($i=0;$i<$nb_emails;$i++){
$email = mysql_result($result,$i,'email');
//mail($email,$sujet,$message,$headers);
echo "<br> $i : mail envoyé à $email";
Mon script s'arrete à 23583 tours, j'ai le mail() en commentaires, je voulais tester d'abord si mon script bouclait bien sur toutes mes entrées (g bien fait
Il me laisse ca comme trace :
nb mails envoyés : 128201
0 : mail envoyé à truc@rediffmail.com
1 : mail envoyé à machin@hotmail.com
....
23583 : mail envoyé à chose@yahoo.com
Voilà, je comprends pas pourquoi il arrive pas à finir sa boucle surtout qu'au niveau processeur mon serveur se porte bien durant la boucle. Peut-etre avez-vous une idée sur la question ?
dans l'url de ton script, ajoute un p'tit parametre d'url ayant une valeur x
ensuite, tu fais un script qui dis
si !isset valeur x alors x=0
ensuite, tu fait un select de tes mails dans ta base de avec un limit 0,valeur x
tu boucle sur les resultats selectionné avec a chaque fois la fonction mail
puis tu ajoute un meta refresh avant ta boucle = 30 seconde (histoire de dire que ta boucle ai le temps de se finir, et tu fais refresher ta page sur la page courante et le parametre d'url X=X+200 par exemple
Ainsi, tu n'aura plus qu'a lancer ton script, et a aller faire un tour
ensuite, tu fais un script qui dis
si !isset valeur x alors x=0
ensuite, tu fait un select de tes mails dans ta base de avec un limit 0,valeur x
tu boucle sur les resultats selectionné avec a chaque fois la fonction mail
puis tu ajoute un meta refresh avant ta boucle = 30 seconde (histoire de dire que ta boucle ai le temps de se finir, et tu fais refresher ta page sur la page courante et le parametre d'url X=X+200 par exemple
Ainsi, tu n'aura plus qu'a lancer ton script, et a aller faire un tour
- petit-ourson
- WRInaute passionné

- Messages: 843
- Inscription: Lun Mai 31, 2004 15:19
Et ca met combien de temps pour envoyer 120 000 mails ?
petit-ourson a écrit:Et ca met combien de temps pour envoyer 120 000 mails ?
par lot de 200 avec un meta refresh à 30 secondes:
cela met (120000/200)*30 secondes
bon c'est long, mais une boucle de 200 enregistrement avec a chaque fois l'envoie d'un mail ça necessite p'tet pas 30 secondes, faut adapter, je ne vais pas lui prendre la main
perso un mailing de 120 000 mail sur un dédié, je penses que ça doit pouvoir se gérer en 1h30 si on ne veux pas trop saturer le serveur
edit: et encore 1h30 c'est super rapide il me semble pour 120 000 mails
Dernière édition par Zim' le Jeu Mai 18, 2006 17:59, édité 1 fois.
- petit-ourson
- WRInaute passionné

- Messages: 843
- Inscription: Lun Mai 31, 2004 15:19
Zim' a écrit:dans l'url de ton script, ajoute un p'tit parametre d'url ayant une valeur x
ensuite, tu fais un script qui dis
si !isset valeur x alors x=0
ensuite, tu fait un select de tes mails dans ta base de avec un limit 0,valeur x
tu boucle sur les resultats selectionné avec a chaque fois la fonction mail
puis tu ajoute un meta refresh avant ta boucle = 30 seconde (histoire de dire que ta boucle ai le temps de se finir, et tu fais refresher ta page sur la page courante et le parametre d'url X=X+200 par exemple
Ainsi, tu n'aura plus qu'a lancer ton script, et a aller faire un tour
Moi je préfère la méthode 'barbare'
Un select unique qui alimente un tableau et après le mail est envoyé en bouclant sur le tableau plutot que sur la requête.
Le truc super important en fait, c'est de ne pas faire un echo à chaque boucle, c'est cela qui bouffe du tps ;o)
oui ca marchera, s'il n'y a pas de souci.
le probleme de ta solution étant que s'il y a un plantage a un endroit, on ne sait pas où... (coupure de courant ou plantage ou time limit exceeded, ...)
il faut toujours stocker quels emails ont été envoyés, et lesquels n'ont pas fonctionné.
le probleme de ta solution étant que s'il y a un plantage a un endroit, on ne sait pas où... (coupure de courant ou plantage ou time limit exceeded, ...)
il faut toujours stocker quels emails ont été envoyés, et lesquels n'ont pas fonctionné.
- petit-ourson
- WRInaute passionné

- Messages: 843
- Inscription: Lun Mai 31, 2004 15:19
Zim' a écrit:petit-ourson a écrit:Et ca met combien de temps pour envoyer 120 000 mails ?
perso un mailing de 120 000 mail sur un dédié, je penses que ça doit pouvoir se gérer en 1h30 si on ne veux pas trop saturer le serveur
edit: et encore 1h30 c'est super rapide il me semble pour 120 000 mails
Pouaa c'est une chèvre mon serveur, il a mis 3h30 hier pour m'envoyer mes 15 000 mails.
Le script a mis 12 mins (requête + envoi via mail()) et qmail a mis 3h15 a tout digérer. Va falloir qu'il embauche un admin réseau dans cette boite lol
petit-ourson a écrit:Pouaa c'est une chèvre mon serveur, il a mis 3h30 hier pour m'envoyer mes 15 000 mails.
Le script a mis 12 mins (requête + envoi via mail()) et qmail a mis 3h15 a tout digérer. Va falloir qu'il embauche un admin réseau dans cette boite lol
Oui, enfin il faut surtout faire des scripts qui tiennent la route et ne pas s'improviser programmeur !
17 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Articles de R et D sur le PageRank, le SpamRank et le spam...
- Des détails sur Gmail, le webmail de Google
- MSN HRS : des éditeurs de MSN évaluent la qualité des sites web
- Suivre le Tour de France 2008 avec Google Street View
- 2,5 milliards de requêtes par jour sur Google en juillet 2009
- Articles sur le référencement publiés par des chercheurs
- Google Dance Jagger (18 Octobre 2005)
- Parts de marché des moteurs aux USA (Mai 2008)
- Parts de marché des moteurs aux USA en juillet 2008 (comScore)
- Parts de marché des moteurs aux USA (Juin 2008)
- Effet sandbox après très grosse mise à jour.
- Boucle PHP et variables
- Boucle(pas=5)en php??
- Boucle avec php
- [Php] Problème de boucle
- boucle d'image en php
- Script PHP très très simple (mot de pass + login)
- probleme avec boucle While et fonction php mail()
- 2 styles CSS sur une boucle en php
- PHP-Récupérer des variables dans une boucle for
- Grosse base sql ou traitement php ?
- Grosse hausse de visites, puis grosse baisse :(
- [php / mysql] Une grosse table ou plusieurs petites tables ?
- Site php avec grosse arborescence ... pble indexation google
- [PHP] "Limiter une boucle" ?
Consultez la description détaillée des produits ou services de Google suivants : Google Blog Search
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum