Je dois envoyer des newsletters. J'ai déjà un script PHP qui envoie des e-mails en masse, mais cela ne fonctionnera pas tant que la base de données de messagerie augmentera en raison de la durée d'exécution maximale du script PHP.
Donc, pour l'éviter, j'ai trouvé une solution: j'appellerais mon script PHP en utilisant AJAX en javascript et je lui donnerais le paramètre $ _GET avec un nombre de 20 pour que le script n'envoie que 20 emails. Alors AJAX recevrait une réponse de succès, et appellerait mon script encore et encore jusqu'à ce que tous les e-mails soient envoyés.
C'est possible? Je demande parce que je n'ai jamais vu une telle solution, donc je me demande si elle est réelle (c'est un peu difficile à implémenter dans mon framework PHP, donc je demande d'abord aux experts ici)
Pour résumer, voici un squelette de code:
<script>
var emailCount = 1000; //would get this from DB
var runCount = 20; //number of emails sent in one cycle
var from = 0; //start number
function sendMail(){
if(from<emailCount){
jQuery.ajaxfunction({
path: 'script.php?from='+from+'&count='+runCount
successFc: function(){
from+=runCount;
sendMail();
}
})
}
}
sendMail();
</script>
Alors, y a-t-il des obstacles? Merci beaucoup.
3 réponses
Utilisation d'AJAX
Bien sûr, vous pouvez le faire en utilisant AJAX , mais dans ce cas, vous devez également vous assurer que le paramètre error
est également défini pour la fonction .ajax()
dans < a href = "http://api.jquery.com/jQuery.ajax/" rel = "nofollow"> jQuery (voir documentation) . Cela garantira que le script sera invoqué même si l'appel précédent a renvoyé une erreur (telle qu'une erreur dans votre script PHP ou quelque chose).
Utilisation des tâches Cron
Une autre idée consiste à utiliser des travaux CRON , qui appellent votre script à intervalle constant et vous n'aurez pas besoin que votre navigateur fonctionne tout le temps. En savoir plus sur Cron. Si vous avez besoin d'une solution pour Windows (Cron est basé sur Unix), vous pouvez utiliser par exemple Cron pour Windows.
Oui, cela fonctionnera. Mais vous pouvez également utiliser la fonction PHP set_time_limit
, mais certains hôtes préfèrent la bloquer.
Vous pouvez utiliser set_time_limit(0)
pour exécuter votre script aussi longtemps que nécessaire.
Questions connexes
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.