PHP 群发消息如何提高速度

1、调用第三方接口类似短信之类的接口对用户发送信息
2、发送量大概有10万用户,但是由于接口限制,一次只能发送一个人
3、目前是用数据库表存发送列表,类似分页原理,浏览器不停的刷数据库列表来调用接口发送

想问如何提高发送速度?需要用到什么技术?多线程多进程?redis?workerman?求指点

阅读 5.9k
7 个回答

我用的队列,php把任务摘要全部推倒队列中,队列的消费者可以有N多个,然后就是所谓的多进程模式了,消费者越多,处理速度越快,我用来发邮件,10W 也就 半个来小时,取决于消费者数量

有几种方式可选

  1. curl_multi 使用这种
  2. workerman的client
  3. guzzle里面的异步方式, 个人觉得这个比较简单

    使用guzzle连接到你的短信接口, 通过异步方式, 不限数量.
    这种相当于多线程方式, 只不过是在socket通过select函数来触发php代码的执行.

多进程发送。

个人感觉用php实现不是很好,用java多线程应该可以。

使用浏览器刷新的办法实在是太LOW了点。可以使用后台进程来发送消息。用PHP完全可以实现啊。

可以用PHP实现,首先你写一个方法用来发送短信,然后用crontab来执行,同时要加快速度可以写多个crontab命令来执行,不推荐用浏览器刷新

异步队列 + swoole_process 多进程

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题