ホームページ  >  記事  >  バックエンド開発  >  PHP+MySQLでメッセージキュー関数を作成(コード付き)

PHP+MySQLでメッセージキュー関数を作成(コード付き)

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-11 15:37:161888ブラウズ

今回は、PHP+MySQLを使ったメッセージキュー関数(コード付き)をお届けします。 PHP+MySQLでメッセージキュー機能を使用する際の注意点は何ですか?実際の事例を見てみましょう。

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

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

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

まず、次のフィールドを含むデータテーブル sms を作成します:

id、

phone、//携帯電話番号
content //SMS コンテンツ

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

次に、PHP を使用して

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

<?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 '发送完毕!';
?>
コードを timer_sms.php として保存し、コマンド ラインを開いてタイマーを実行します:

php timer_sms.php
わかりました。PHP タイマーは、設定された時間間隔 (ここでは 10 秒に設定されています) に従ってテキスト メッセージを送信するタスクを

自動的に完了します 。タスクが完了すると、タイマーは自動的に終了し、サーバー リソースを占有しなくなります。

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

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

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

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

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

推奨読書:

Puppeteer エントリーレベルのコード

Vue データ監視の使用説明

以上がPHP+MySQLでメッセージキュー関数を作成(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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