首页  >  问答  >  正文

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

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

伊谢尔伦伊谢尔伦2766 天前681

全部回复(10)我来回复

  • PHPz

    PHPz2017-04-11 10:03:52

    简单点用redis lpush lpop

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

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

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-11 10:03:52

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

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 10:03:52

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

    回复
    0
  • PHPz

    PHPz2017-04-11 10:03:52

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

    回复
    0
  • 黄舟

    黄舟2017-04-11 10:03:52

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

    回复
    0
  • PHP中文网

    PHP中文网2017-04-11 10:03:52

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

    用这个库试试呢?

    回复
    0
  • 高洛峰

    高洛峰2017-04-11 10:03:52

    把内容和号码一起放队列

    回复
    0
  • 黄舟

    黄舟2017-04-11 10:03:52

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

    回复
    0
  • 黄舟

    黄舟2017-04-11 10:03:52

    RabbitMQ+PHP 消息队列

    回复
    0
  • 怪我咯

    怪我咯2017-04-11 10:03:52

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

    回复
    0
  • 取消回复