首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
[2021-12-02 14:42:45 @35530.0] WARNING ~Channel (ERRNO 10003): channel is destroyed, 9935 consumers will be discarded
### 问题描述 ### Swoole版本,PHP版本,以及操作系统版本信息 php版本:PHP 7.4.24 Swoole版本:4.6.7 操作系统版本:window的docker的 CentOS Linux release 7.8.2003 (Core) ### 相关代码 ```php <?php use Swoole\Coroutine\MySQL; use function Swoole\Coroutine\run; use Swoole\Coroutine; use Swoole\Database\PDOConfig; use Swoole\Database\PDOPool; use Swoole\Runtime; Runtime::enableCoroutine(); $max_coroutine = 10000; //插入10000000条数据 Swoole\Coroutine::set(['max_coroutine'=>$max_coroutine]); run(function () use ($max_coroutine) { $sql = "INSERT INTO `test_order` (`order_num`,`status`) VALUES(?,?)"; $i = 0; $max = 10000000; $pool = new PDOPool((new PDOConfig) ->withHost('127.0.0.1') ->withPort(3306) // ->withUnixSocket('/tmp/mysql.sock') ->withDbName('test') ->withCharset('utf8mb4') ->withUsername('root') ->withPassword('rootroot') ); $count = $max_coroutine; while ($i < $count) { Swoole\Coroutine\go(function () use ($pool,$sql,$i,$max,$count) { $db = $pool->get(); $start = $i*(int)($max/$count); $end = $start + (int)($max/$count); for ($j = $start;$j < $end ;$j++) { $stmt = $db->prepare($sql); if ($stmt == false) { var_dump($db->errno, $db->error); } else { $ret2 = $stmt->execute([order_num($j), 1]); if ($ret2) { var_dump("$j:成功"); } else { var_dump("$j:{$db->errno},{$db->error}"); } } } }); $i++; } }); function order_num($i) { return date("YmdHis").str_pad($i,8,0,STR_PAD_LEFT); } ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 没有全部执行完就停止了 [Coroutine-9969] -------------------------------------------------------------------- #0 Swoole\Coroutine\Channel->pop() called at [@swoole-src/library/core/ConnectionPool.php:60] #1 Swoole\ConnectionPool->get() called at [/www/wwwroot/miscellaneous/test.php:34] [2021-12-02 14:42:45 @35530.0] WARNING ~Channel (ERRNO 10003): channel is destroyed, 9935 consumers will be discarded
发布于2年前 · 32 次浏览 · 来自
提问
北巷
### 问题描述 ### Swoole版本,PHP版本,以及操作系统版本信息 php版本:PHP 7.4.24 Swoole版本:4.6.7 操作系统版本:window的docker的 CentOS Linux release 7.8.2003 (Core) ### 相关代码 ```php <?php use Swoole\Coroutine\MySQL; use function Swoole\Coroutine\run; use Swoole\Coroutine; use Swoole\Database\PDOConfig; use Swoole\Database\PDOPool; use Swoole\Runtime; Runtime::enableCoroutine(); $max_coroutine = 10000; //插入10000000条数据 Swoole\Coroutine::set(['max_coroutine'=>$max_coroutine]); run(function () use ($max_coroutine) { $sql = "INSERT INTO `test_order` (`order_num`,`status`) VALUES(?,?)"; $i = 0; $max = 10000000; $pool = new PDOPool((new PDOConfig) ->withHost('127.0.0.1') ->withPort(3306) // ->withUnixSocket('/tmp/mysql.sock') ->withDbName('test') ->withCharset('utf8mb4') ->withUsername('root') ->withPassword('rootroot') ); $count = $max_coroutine; while ($i < $count) { Swoole\Coroutine\go(function () use ($pool,$sql,$i,$max,$count) { $db = $pool->get(); $start = $i*(int)($max/$count); $end = $start + (int)($max/$count); for ($j = $start;$j < $end ;$j++) { $stmt = $db->prepare($sql); if ($stmt == false) { var_dump($db->errno, $db->error); } else { $ret2 = $stmt->execute([order_num($j), 1]); if ($ret2) { var_dump("$j:成功"); } else { var_dump("$j:{$db->errno},{$db->error}"); } } } }); $i++; } }); function order_num($i) { return date("YmdHis").str_pad($i,8,0,STR_PAD_LEFT); } ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 没有全部执行完就停止了 [Coroutine-9969] -------------------------------------------------------------------- #0 Swoole\Coroutine\Channel->pop() called at [@swoole-src/library/core/ConnectionPool.php:60] #1 Swoole\ConnectionPool->get() called at [/www/wwwroot/miscellaneous/test.php:34] [2021-12-02 14:42:45 @35530.0] WARNING ~Channel (ERRNO 10003): channel is destroyed, 9935 consumers will be discarded
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
还没有评论!
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。