Cette fois, je vais vous apporter la fonction file d'attente de messages (avec code) utilisant PHP+MySQL Quelles sont les précautions pour utiliser PHP+MySQL pour créer la fonction de file d'attente de messages ? Voici quelques exemples de cas pratiques.
Récemment, j'ai rencontré le besoin d'envoyer des messages texte par lots. L'interface de messagerie texte est fournie par un tiers. Au début je me suis dit qu'après avoir obtenu le numéro de téléphone portable, ne suffirait-il pas d'appeler l'interface en boucle pour l'envoyer ?
Mais un problème a été rapidement découvert : lorsque le nombre de SMS est important, cela prend non seulement du temps, mais a également un faible taux de réussite.
J'ai donc pensé à utiliser PHP et MySQL pour implémenter une file d'attente de messages et envoyer des messages texte un par un. La méthode de mise en œuvre spécifique est présentée ci-dessous :
Tout d'abord, créez un tableau de données sms, comprenant les champs suivants :
id,
téléphone, //Numéro de téléphone portable
contenu / /Contenu SMS
Enregistrez les messages texte et les numéros de téléphone portable à envoyer dans le tableau sms.
Ensuite, vous devez utiliser PHP pour implémenter un timer pour lire régulièrement un enregistrement et envoyer un message texte :
<?php $db = new Db(); $sms = new Sms(); while(true){ $item = $db->getFirstRecord(); //获取数据表第一条记录 if(!$item){ //如果队列中没有数据,则结束定时器 break; } $res = $sms->send($item['phone'],$item['content']); //发送短信 if($res){ $db->deleteFristRecord(); //删除发送成功的记录 echo $item['phone'].'发送成功'; }else{ echo $item['phone'].'发送失败,稍后继续尝试'; } sleep(10); //每隔十秒循环一次 } echo '发送完毕!'; ?>
Enregistrez le code sous timer_sms.php , Ouvrez la ligne de commande et exécutez le minuteur :
php timer_sms.php
D'accord, le minuteur php terminera automatiquement enverra le message texte selon l'intervalle de temps défini (ici il est fixé à 10 secondes) tâche. Une fois la tâche terminée, le minuteur se fermera automatiquement et n'occupera plus les ressources du serveur.
D'après mes tests, le timer PHP n'occupe pas beaucoup de ressources et ne mettra pas de pression sur le serveur. De plus, l'accès à la base de données de manière asynchrone n'affectera pas le fonctionnement de la base de données.
Les avantages de cette méthode sont :
1. Fonctionner en arrière-plan, pas besoin d'attendre à la réception
2. le taux est élevé et les enregistrements échoués seront automatiquement réédités jusqu'à ce qu'ils réussissent
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le php chinois. site web!
Lecture recommandée :
Code d'entrée de gamme de Marionnettiste
Instructions d'utilisation de la montre de surveillance des données Vue
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!