• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP+MySQL实现消息队列的方法分析

    本文实例讲述了PHP+MySQL实现消息队列的方法。分享给大家供大家参考,具体如下:

    最近遇到一个批量发送短信的需求,短信接口是第三方提供的。刚开始想到,获取到手机号之后,循环调用接口发送不就可以了吗?

    但很快发现问题:当短信数量很大时,不仅耗时,而且成功率很低。

    于是想到,用PHP和MySQL实现一个消息队列,一条一条的发送短信。下面介绍具体的实现方法:

    首先,建立一个数据表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['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相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP使用ActiveMQ实现消息队列的方法详解
    • PHP使用ActiveMQ实例
    • PHP Beanstalkd消息队列的安装与使用方法实例详解
    • 基于PHP实现微信小程序客服消息功能
    • PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
    • PHP+RabbitMQ实现消息队列的完整代码
    • PHP多进程通信-消息队列使用
    • php基于Redis消息队列实现的消息推送的方法
    • 使用PHP访问RabbitMQ消息队列的方法示例
    • php实现微信模板消息推送
    • php ActiveMQ的安装与使用方法图文教程
    上一篇:PHP共享内存使用与信号控制实例分析
    下一篇:PHP数组去重的更快实现方式分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP+MySQL实现消息队列的方法分析 PHP+MySQL,实现,消息,队列,