Votre question

[PHP] Set_time_limit() et OVH

Tags :
  • Time
  • Programmation
Dernière réponse : dans Programmation
23 Janvier 2009 11:48:34

Bonjour
je créer actuellement un site avec un système de newsletter, et j'aimerais le mettre chez ovh (l'hébergeur).
Le problème est le suivant : apparemment ovh est en safe_mode pour php et mon petit script d'envoi de mails dure plus de 30sec vu que j'ai une base de données de plus de 7000 mails...
Quelqu'un aurait une idée comme configurer le php.ini ou quelque chose dans le genre??
Merci d'avance !!!

Hyuge

Autres pages sur : php set time limit ovh

23 Janvier 2009 12:12:50

Tu n'as qu'à éviter d'envoyer 7000 mail d'un coup aussi ... envois 1000 par 1000.
m
0
l
23 Janvier 2009 12:57:15

On ne peut pas désactiver le safe mode de OVH.
J'ai deja eu besoin de le desactiver et leur ai envoyer un mail. Ils m'ont repondu que c'etait impossible.

Utilise la solution de SiM07 je pense que tu gagnera du temps.
m
0
l
Contenus similaires
23 Janvier 2009 14:19:17

C'est l'entreprise pour laquelle je bosse qui me demande de leur faciliter les envois de newsletter, ils ont déjà une solution mais elle ne les satisfait pas du tout, ils doivent envoyer 500 par 500 et ça leur prends trop de temps...

Si quelqu'un a une autre solution, elle est la bienvenue... ou si vous connaissez un hébergeur assez bien et qui ne met pas de safe mode...

Merci d'avance!!

Hyuge

m
0
l
23 Janvier 2009 15:34:31

prend un kimsufi.
m
0
l
23 Janvier 2009 15:41:49

Un serveur dédié?
C'est pas un peu compliqué à configurer?
je connais pas du tout...
m
0
l
23 Janvier 2009 16:52:15

Tu peux lancer un processus qui fait des lancements 1000 par 1000, en lancant les requêtes en AJAX par exemple ...

Cela te permet d'avoir une sorte de barre de progression en plus :) 
m
0
l
23 Janvier 2009 16:54:44

A ouais pas bête j'y avait pas pensé...
Je vais essayer de trouver comment faire ça...
Merci
m
0
l
23 Janvier 2009 17:13:11

En fonctionnant en mode asynchrone. En utilisant prototype, sur l'évènement onSuccess, tu relance une requête. Avec un petit compteur pour savoir à combien tu es arrivé et bien tu peux tranquillement envoyer tous les mails.

En revanche pense bien à prendre en compte la reprise sur coupure, genre le mec ferme son navigateur par manque de temps, lorsqu'il réouvre et relance, il faut reprendre là où tu étais arrivé et pas depuis le début.
m
0
l
28 Janvier 2009 12:24:20

Nooon ! OVH met à dispo, en mutualisé, des outils de gestion de newsletter, tu devrais les utiliser. C'est fait pour ça.

Parce que là 7000 mails par semaine ou mois, ça sent mauvais. Enfin si tu es en mut...
m
0
l
28 Janvier 2009 17:26:58

Ou sinon pense aussi à créer un "cron" (ou tâche planifiée) c'est dispo sur les mut OVH et peut-être que le time limit est plus souple.
m
0
l
9 Août 2012 15:19:40

Bonjour
J'ai eu le même problème mon employeur m'a demandé de faire ça. J'ai fini par trouver la solution suivante. Déjà, pour éviter de passer en SPAM, il faut laisser une pause entre chaque envoi de message (par exemple 1 seconde) et une pause plus grande entre blocs de messages (par exemple une pause de 10 secondes tous les 50 messages).
Dans ces conditions, j'ai créer une page qui copie tous les emails dans une table appart de ma table de courriels, avec 2 colonnes : courriel et statut. La colonne courriel contient l'adresse courriel à qui l'on veut envoyer, la colonne statut contient le statut, par exemple 'envoye', 'pasencoreenvoye' (évidemment par défaut 'pasencoreenvoye'). Une fois tous les courriels copiés dans ma nouvelle table, je redirige l'utilisateur vers une page qui prend le premier courriel dans la table à avoir un statut 'pasencoreenvoye', envoi l'email à cette adresse, et modifie le statut du courriel dans ma table par 'envoye'. Cette page s'actualise toutes les 1 secondes grace à une balise <meta http-equiv="refresh">. Du coup, toutes les environ 1 seconde (si on compte pas le temps d'éxécution de l'envoi d'un email), un email part à destination d'une adresse à laquelle ça n'a pas été envoyé.

Je sais pas si cette solution va marcher pour ton cas ou si elle t'intéresse, mais pour moi elle marche. En plus, cela a l'avantage de ne pas prendre toutes les ressources du serveur pendant le sleep(1) pendant l'envoi des 7000 courriels, tu peux donc avoir une barre de chargement en regardant dans ta table le nombre de courriels envoyés et le nombre de courriels non envoyés.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS