Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Schritte zur Implementierung einer Nachrichtenwarteschlange mit PHP+MySQL

Detaillierte Erläuterung der Schritte zur Implementierung einer Nachrichtenwarteschlange mit PHP+MySQL

php中世界最好的语言
php中世界最好的语言Original
2018-05-16 10:21:362048Durchsuche

Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Schritte zur Implementierung der Nachrichtenwarteschlange mit PHP+MySQL geben. Was sind die Hinweise für die Implementierung der Nachrichtenwarteschlange mit PHP+MySQL? sind praktische Fälle. Kürzlich musste ich Textnachrichten stapelweise versenden. Die SMS-Schnittstelle wird von einem Drittanbieter bereitgestellt. Zuerst dachte ich, würde es nach Erhalt der Mobiltelefonnummer nicht ausreichen, die Schnittstelle in einer Schleife aufzurufen, um sie zu senden?

Aber ein Problem wurde schnell entdeckt: Wenn die Anzahl der Textnachrichten groß ist, ist das nicht nur zeitaufwändig, sondern hat auch eine geringe Erfolgsquote.

Also dachte ich darüber nach, PHP und MySQL zu verwenden, um eine Nachrichtenwarteschlange zu implementieren und Textnachrichten einzeln zu senden. Die spezifische Implementierungsmethode wird im Folgenden vorgestellt:

Erstellen Sie zunächst eine Datentabellen-SMS, einschließlich der folgenden Felder:

id,
phone, //手机号
content //短信内容

Speichern Sie die benötigten Textnachrichten und Mobiltelefonnummern in die SMS-Tabellenmitte gesendet werden.

Als nächstes müssen Sie PHP verwenden, um einen

Timer

zu implementieren, um einen Datensatz regelmäßig zu lesen und eine Textnachricht zu senden:

<?php
$db = new Db();
$sms = new Sms();
while(true){
  $item = $db->getFirstRecord(); //获取数据表第一条记录
  if(!$item){
    //如果队列中没有数据,则结束定时器
    break;
  }
  $res = $sms->send($item[&#39;phone&#39;],$item[&#39;content&#39;]); //发送短信
  if($res){
    $db->deleteFristRecord(); //删除发送成功的记录
    echo $item[&#39;phone&#39;].&#39;发送成功&#39;;
  }else{
    echo $item[&#39;phone&#39;].&#39;发送失败,稍后继续尝试&#39;;
  }
  sleep(10); //每隔十秒循环一次
}
echo &#39;发送完毕!&#39;;
?>
Speichern Sie den Code als timer_sms.php und öffnen Sie ihn den Befehl OK, führe den Timer aus:

php timer_sms.php

Okay, der PHP-Timer wird

automatisch die

Aufgabe des Sendens von Textnachrichten gemäß dem eingestellten Zeitintervall (hier eingestellt sind 10 Sekunden) abschließen. Nach Abschluss der Aufgabe wird der Timer automatisch beendet und belegt keine Serverressourcen mehr. Meinen Tests zufolge belegt der PHP-Timer nicht viele Ressourcen und belastet den Server nicht. Darüber hinaus hat der asynchrone Zugriff auf die Datenbank keinen Einfluss auf den Betrieb der Datenbank.

Die Vorteile dieser Methode sind:

1. Läuft im Hintergrund, kein Warten im Frontend

2 ist hoch und fehlgeschlagene Datensätze werden automatisch erneut gesendet, bis sie erfolgreich sind.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf PHP Chinesische Website!

Empfohlene Lektüre:

Detaillierte Erläuterung der Schritte zur Implementierung der Drag-and-Drop-Funktion mit Vue


Detaillierte Erläuterung von die Schritte zum Erstellen eines persönlichen WeChat-Kontoroboters mithilfe des Knotens

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Implementierung einer Nachrichtenwarteschlange mit PHP+MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn