1

我有一个 Swoole websocket 服务器,我想使用 RedisPool 管理多个 Redis 连接,以便在收到消息时为每个查询选择一个。当我尝试从我的 RedisPool 获取连接时,Swoole 输出错误“错误:未捕获的 Swoole\错误:必须在 @swoole-src/library/core/ConnectionPool.php:69 中的协程中调用 API”,所以我尝试了用 Co\Run 封装我的查询:

Co\run(function() use ($key, $pool) {
    go(function () use ($key, $pool) {
        $redis = $pool->get();
        $result = $redis->get($key);

        $pool->put($redis);
    });
});

然后我得到“警告:Swoole\Coroutine\Scheduler::start(): eventLoop 已经创建。无法启动 Swoole\Coroutine\Scheduler”

我想我的 websocket 服务器已经启动了 eventLoop。有没有办法访问服务器 eventLoop 或其他方法来运行 Coroutine ?

4

0 回答 0