queue 中使用curl_multi 创建多个句柄无法运行成功

1. 运行环境#

1). 当前使用的 Laravel 版本?#

5.X

2). 当前使用的 php/php-fpm 版本?#

PHP 版本:7.0

php-fpm 版本:7.0

3). 当前系统#

CentOS 6
//: <> (期待数值 Windows 10 / Ubuntu 20.4 / CentOS 8)

4). 业务环境#

开发环境
//: <> (期待信息 开发环境生产环境)
//: <> (是否使用负载均衡?请提供相关信息)

5). 相关软件版本#

2. 问题描述?#

我在其他地方调用 该方法可以成功
但是在队列中调用失败,没有报错信息 并且 cpu 一直升高

    $optArr = [
        CURLOPT_HTTP_VERSION => 3,
        CURLOPT_POSTFIELDS => '',
        CURLOPT_HEADER => TRUE,
        CURLOPT_RETURNTRANSFER => 1,
    ];
    $result = [];
    //创建多个curl资源
    for ($i=0; $i<2; $i++) {
        $chArr[$i] = curl_init();
        $optArr[CURLOPT_URL] = $service_url;
        curl_setopt_array($chArr[$i], $optArr);
    }
    //创建批处理curl句柄
    $mh = curl_multi_init();
    //将单个curl句柄添加到批处理curl句柄中
    foreach ($chArr as $ch) {
        curl_multi_add_handle($mh, $ch);
    }
    //判断操作是否仍在执行的标识的引用
    $active = null;

    do {
        //处理在批处理栈中的每一个句柄
        $mrc = curl_multi_exec($mh, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);

    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($mh) != -1) {
            //程序退出阻塞状态继续执行需要处理的 $ch 句柄
            do {
                $mrc = curl_multi_exec($mh, $active);
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }

    foreach ($chArr as $i=>$ch) {
        //获取某个curl句柄的返回值
        $result[$i] = curl_multi_getcontent($ch);
        //移除批处理句柄中的某个句柄资源
        curl_multi_remove_handle($mh, $ch);
    }
    //关闭一组curl句柄
    curl_multi_close($mh);

3. 您期望得到的结果?#

4. 您实际得到的结果?#

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。