PHP 由于客户比较多,发送短信格式类型有很多种,想用短信队列来解决,不知道如何下手
伊谢尔伦
伊谢尔伦 2017-04-11 10:01:52
0
10
660

PHP 由于客户比较多,发送短信类型有很多种,想用短信队列来解决发送担心,不知道如何下手???

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all (10)
PHPzhong

简单点用redis lpush lpop

$redis->lpush('queue',json_encode($data));

开一个进程lpop消费就可以了,你可以先本地测试下while($redis->lpop('queue'))

    大家讲道理

    一个生产者,一个消费者进程。
    消费的任务就是发送短信。
    你可以把任务放到redis的list类型中,再开一个常住进程监控redis,有任务就拿出来消费。

      伊谢尔伦

      既然选择用队列,方式有很多
      1.很多php框架都有队列的功能 laravel phalcon等
      2.就是redis list数据类型 ,一边把它推入队列中,另一边把任务从队列里拿出来,这只是一个中转站,当然你也可以存到数据库里,效率当然是redis高一些

        PHPzhong

        那就用队列来解决问题了啊,有什么疑问吗?

          黄舟

          每次用户端请求发短信, 你直接把你直接把这个方法丢到队列里面去, 然后在服务器里面在启动一个php守护进程,比如每隔1s中扫队列里面,如果有数据,就去执行这个方法, ,, 如果你不放心, 你就在写一个shell脚本, 去每隔10分钟去检测这个队列有没有挂........

            Ty80

            https://github.com/pda/pheans...

            用这个库试试呢?

              小葫芦

              把内容和号码一起放队列

                黄舟

                自己去维护这样的一个工作还是比较累的。推荐使用第三方库
                可以尝试一下phpsms这个库

                  黄舟

                  RabbitMQ+PHP 消息队列

                    刘奇

                    建议轻量的用beanstalks,Redis的pub/sub 在c/s中断时,将丢数据,不是MQ。rabbitmq之类的有点重,看是否需有那么大量。

                      Latest Downloads
                      More>
                      Web Effects
                      Website Source Code
                      Website Materials
                      Front End Template
                      About us Disclaimer Sitemap
                      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!