今回は、PHP+MySQLを使ったメッセージキュー関数(コード付き)をお届けします。 PHP+MySQLでメッセージキュー機能を使用する際の注意点は何ですか?実際の事例を見てみましょう。
最近、テキスト メッセージをバッチで送信する必要があるようになりました。テキスト メッセージ インターフェイスはサードパーティによって提供されています。最初は、携帯電話番号を取得した後、インターフェイスをループで呼び出して送信すれば十分ではないかと思いました。 しかし、問題はすぐに発見されました。テキスト メッセージの数が多いと、時間がかかるだけでなく、成功率も非常に低くなります。 そこで、PHP と MySQL を使用してメッセージ キューを実装し、テキスト メッセージを 1 つずつ送信することを考えました。具体的な実装方法は以下で紹介します: まず、次のフィールドを含むデータテーブル sms を作成します:id、テキスト メッセージと携帯電話送信する必要がある電話番号をSMSテーブルに保存します。 次に、PHP を使用してphone、//携帯電話番号
content //SMS コンテンツ
タイマー を実装し、定期的にレコードを読み取り、テキスト メッセージを送信する必要があります:
<?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 '发送完毕!'; ?>
php timer_sms.php
自動的に完了します 。タスクが完了すると、タイマーは自動的に終了し、サーバー リソースを占有しなくなります。
私のテストによると、PHP タイマーは多くのリソースを占有せず、サーバーに負荷をかけません。また、データベースに非同期でアクセスしても、データベースの動作には影響しません。この方法の利点は次のとおりです:
1. バックグラウンドで実行され、フロントデスクで待つ必要がありません2. 成功率が高く、失敗したレコードは成功するまで自動的に再送信されますこの記事の事例を読んでマスターしてください。方法については、さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:以上がPHP+MySQLでメッセージキュー関数を作成(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。