ホームページ  >  記事  >  バックエンド開発  >  PHP+MySQLでメッセージキューを実装する手順の詳細説明

PHP+MySQLでメッセージキューを実装する手順の詳細説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-16 10:21:362096ブラウズ

今回は、PHP + MySQL でメッセージ キュー を実装する手順について詳しく説明します。PHP + MySQL でメッセージ キューを実装するための 注意事項

は次のとおりです。 。

最近、テキスト メッセージをバッチで送信する必要があるようになりました。テキスト メッセージ インターフェイスはサードパーティによって提供されています。最初は、携帯電話番号を取得した後、インターフェイスをループで呼び出して送信すれば十分ではないかと思いました。

しかし、問題はすぐに発見されました。テキスト メッセージの数が多いと、時間がかかるだけでなく、成功率も非常に低くなります。

そこで、PHP と MySQL を使用してメッセージ キューを実装し、テキスト メッセージを 1 つずつ送信することを考えました。具体的な実装方法は以下で紹介します:

まず、次のフィールドを含むデータ テーブル sms を作成します:
id,
phone, //手机号
content //短信内容

送信する必要があるテキスト メッセージと携帯電話番号を sms テーブルに保存します。

次に、PHP を使用して タイマー

を実装し、定期的にレコードを読み取り、テキスト メッセージを送信する必要があります:

<?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;;
?>

コードを timer_sms.php として保存し、コマンド ラインを開いてタイマーを実行します:

php timer_sms.php
わかりました。PHP タイマーは、設定された時間間隔 (ここでは 10 秒に設定されています) に従ってテキスト メッセージを送信するタスクを 自動的に完了します 。タスクが完了すると、タイマーは自動的に終了し、サーバー リソースを占有しなくなります。

私のテストによると、PHP タイマーは多くのリソースを占有せず、サーバーに負荷をかけません。また、データベースに非同期でアクセスしても、データベースの動作には影響しません。

この方法の利点は次のとおりです:

1. バックグラウンドで実行され、フロントデスクで待つ必要がありません

2. 成功率が高く、失敗したレコードは成功するまで自動的に再送信されます

この記事の事例を読んでマスターしてください。方法については、さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

Vue

ノードを使用してWeChat個人アカウントロボットを作成するドラッグアンドドロップ機能を実装する手順の詳細な説明

🎜

以上がPHP+MySQLでメッセージキューを実装する手順の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。