2010-04-23 3 views
0

Il faut environ deux secondes à mon application pour exécuter le code pour envoyer un e-mail maintenant sur un serveur de test avec rien d'autre en cours d'exécution. Je ne sais pas si c'est typique/prévu. J'utilise également l'assistant de messagerie du framework Koh, Kohana, et pas le mail de php directement par commodité si cela est important. Est-il toujours préférable de programmer un travail cron pour envoyer des emails toutes les 5 min environ? Ou devrais-je être capable d'envoyer des emails immédiatement et je ne fais juste pas quelque chose de bien?Suggestions d'amélioration des performances pour l'envoi de notifications par e-mail?

Ce que fait le script est d'insérer une ligne dans la base de données et d'avertir le groupe concerné que la ligne a été créée. Les groupes sont habituellement < 20 personnes donc je fais juste une boucle en appelant l'aide email de Kohana chaque fois pour chaque membre du groupe.

+0

S'il s'agit d'un groupe, ne pourriez-vous pas les envoyer tous en même temps? – SeanJA

+0

Je voulais être en mesure d'envoyer des messages légèrement différents en fonction de qui ils sont pour la personnalisation – jhchen

Répondre

2

ne suis pas sûr du implentation de l'aide Kohana, mais voici ce que le doc php dit:

Note: Il convient de noter que la fonction ne convient pas pour des volumes plus importants mail() de email dans une boucle. Cette fonction ouvre et ferme une prise SMTP pour chaque e-mail, ce qui n'est pas très efficace. Pour l'envoi de grandes quantités de courrier électronique, voir les » PEAR::Mail, et» PEAR::Mail_Queue paquets.

2

http://swiftmailer.org/ est un excellent et fiable Mailer. Peut-être qu'une approche alternative est la bonne réponse.

+0

C'est aussi la norme * de facto * pour l'envoi dans Kohana. +1 – alex

0

Quelque chose ne va pas, pour des groupes de moins de vingt utilisateurs, il devrait être rapide. > 100 obtiendrait un temps de traitement plus lent.

Regardez dans la configuration de votre serveur. Ou, utilisez les fonctions IMAP ...

0

Pour la solution la plus rapide, consultez gearman Vous envoyez la demande d'envoi de l'e-mail dans la file d'attente gearman et le reste de votre script peut s'exécuter pendant que Gearman complète la partie e-mail de votre script en arrière-plan