使用swoole协程推送微信消息

之前的我都是用 fsockopen 方式进行推送,虽然这种方式会比 curl 快,但是还是太慢了,测试发现1000个用户的模板消息需要3分钟,太漫长了,如果我推送10万或者更多用户,我得推送好几个小时,这个不科学,于是想着用golang或者swoole,后来想了想还是用swoole,golang还得配置环境,而服务器上的php环境是配置好的,他的协程也挺好用的,还是php写代码的格式;以下代码,3000条3秒左右可以推送完成,还可以优化代码,我这边能用就先将就用了。

  1. swoole 的推送代码:
<?php
// 假设该服务在IP 123.12.12.43 上
// 启动命令,在文件目录执行 php push.php
echo 'start_at: '. date('Y-m-d H:i:s') ."\r\n";
// 开启http服务,用于接收推送数据
$serv = new Swoole\Http\Server("0.0.0.0", 8080, SWOOLE_BASE);

$serv->on('request', function ($req, $resp) {
   
    // 获取请求过来的参数列表
    $params = array_merge($req->get ?: [], $req->post ?: []);
    $params['func'] = isset($params['func']) ? $params['func'] : '';

    $wg = new \Swoole\Coroutine\WaitGroup();

    $result = []; // 结果信息
    $result['start_at'] = microtime(true); // 记录开始时间
    $result['num'] = 0; // 记录推送数量
    switch ($params['func']) {
   
        case 'wx_push':
            // 数据验证
            if (!isset($params['openids']) || !$params['openids'] 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值