Swoole 达到协程数量上限后,如何阻塞等待释放?

发布于 2022-09-12 13:07:57 字数 555 浏览 24 评论 0

当设置 max_coroutine 为 10,当创建的协程达到最大数量10时,协程创建失败,业务不会执行,如何让其阻塞,让其等待其他协程释放后,再唤醒进行创建协程?

const MAX_COROUTINE = 10;

Runtime::enableCoroutine();
$s = microtime(true);
Co::set([
    'hook_flags' => SWOOLE_HOOK_ALL,
    'max_coroutine' => MAX_COROUTINE,
    'socket_timeout' => -1,
    'socket_connect_timeout' => -1,
]);
Co\run(function () {
    while(true) {
        Coroutine::create(function () {
            // 业务1
        });
        
        Coroutine::create(function () {
            // 业务2
        });
    }
}); 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

-黛色若梦 2022-09-19 13:07:57

WaitGroup自己控制下就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文