Swoole 达到协程数量上限后,如何阻塞等待释放?
当设置 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
用WaitGroup自己控制下就可以了