首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
正常使用连接池出现此错误

发布于6年前 · 2 次浏览 · 来自
提问
lililili

赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-04-24
鲁飞
只能在协程环境调用,可以在对应地方打印下`cid` 检查是否增加了`enable_coroutine`配置
赞
1
回复
2020-04-24
鲸落
方便贴个代码吗? 应该是没有用协程容器包裹。 [https://wiki.swoole.com/#/coroutine/scheduler](https://wiki.swoole.com/#/coroutine/scheduler "https://wiki.swoole.com/#/coroutine/scheduler")
赞
0
回复
2020-04-24
lililili
回复
鲸落
是没有用协程包裹,但是,如果此语句不是在ontask里运行,而是在普通onmessage里运行的话,却是没有错误的。
赞
0
回复
2020-04-24
鲁飞
回复
lililili
task使用协程,需要开启`task_enable_coroutine`
赞
2
回复
2020-04-24
鲸落
回复
lililili
message 已经是协程环境了,task需要用协程,需要开启 task_enable_coroutine 配置 <?php use Swoole\WebSocket\Server; $server = new Server('0.0.0.0', 9501); $server->set([ 'task_worker_num'=>1, 'task_enable_coroutine' => true, ]); $server->on('message', function (Server $server, \Swoole\WebSocket\Frame $frame) { Co\System::sleep(1); $server->task($frame->data); }); $server->on('task', function (Server $server, \Swoole\Server\Task $task) { $task->finish($task->data); go(function (){ Co\System::sleep(1); }); }); $server->on('finish', function () { }); $server->start();
赞
1
回复
2020-04-24
lililili
回复
鲁飞
的确是少了这个task_enable_coroutine
赞
0
回复
2020-04-24
lililili
回复
鲸落
多谢了,是对的
赞
0
回复