PHP+MySQL crée une fonction de file d'attente de messages (avec code)

php中世界最好的语言
Libérer: 2023-03-25 19:06:01
original
1887 Les gens l'ont consulté

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 '发送完毕!';
?>
Copier après la connexion

Enregistrez le code sous timer_sms.php , Ouvrez la ligne de commande et exécutez le minuteur :

php timer_sms.php
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!