webman能使用协程吗?

joytom

在wenbman框架里可不可以使用协程?

1253 3 0
3个回答

胡桃

可以

  • joytom 2023-10-18

    有没有相关文档链接,发我参考下呗

  • meows 2023-10-18

    需要安装Swoole , Worker::$eventClass = Swoole::class
    然后你再$worker->onWorkerStart = function() {
    Coroutine::create(function(){
    Coroutine::sleep(3);
    echo "c1";
    });
    Coroutine::create(function(){
    Coroutine::sleep(1);
    echo "c2";
    });
    // 看看输出顺序是不是 c2 然后 c1, 你就知道支持协程没有了。
    };

  • joytom 2023-10-18

    好,我看看。其实这个问题也不是单纯说 webman能不能使用协程,是workman能不能使用协程

  • 胡桃 2023-10-18

    workerman没有提供异步API,要么自己实现,要么使用其他的协程库。

  • tanhongbin 2023-10-18

    主要看你用哪个方面了,如果mysql的协程没戏,直接用hy,如果请求第三方 或者 redis webman现在可以用协程了,但是要求最低php8.1版本才能用

  • 胡桃 2023-10-18

    workerman至今都没有引入协程,甚至可以预见在未来相当一段时间内都不会加入这玩意,因为这个玩意不是必须的,曾经有不少人以io密集为由提议引入协程,walkor表示:多开几个进程。

    你就算用上了协程,你也不见得会开心,后面还有无数的问题等着你。如果你到了没有协程无法呼吸的地步,最好的办法是换个框架或者换门语言。

  • tanhongbin 2023-10-19

    如果是 mysql 协程 没啥鸟用 redis也没啥用 但是 请求第三方 接口 阻塞 协程还是有用的 ,你测试可以明显发现 协程 的并发高,不会请求第三方接口 阻塞 导致 你吞吐量急剧下降,可以多试试

admin

搜索好像是免费的

  • joytom 2023-10-18

    发问题之前我就搜问答了,只不过没找到我想要的答案,而且涉及到这一块的问答并不多。有,很少。且,不是最新。

tanhongbin

你用协程干啥?如果mysql 你得用swoole的 如果是 请求第三方 我建议 你直接webman fiber哪个,php8.1 版本能用,我请求第三方就用的 群主实现的那个协程,挺好用的不阻塞

🔝