gpt4 book ai didi

php - MongoDB + PHP 无并发

转载 作者:可可西里 更新时间:2023-11-01 09:55:14 25 4
gpt4 key购买 nike

我有一个用 PHP 开发的应用程序,使用 MongoDB 来攻击数据库。我的问题是,在某些情况下,进行查询需要很长时间,并且会抛出以下错误:可捕获的 fatal error :传递给 MongoCollection::__construct() 的参数 1 必须是 MongoDB 的一个实例,null given in..

即使我打开两个相同的浏览器,如果我在每个浏览器中访问应用程序,直到没有一个浏览器不会结束查询,另一个不会开始.. 为什么不是并发?..

我使用 MongoDB 2.6.5、PHP 5.3.3-7 和 PHP MongoDB 驱动程序 1.6.8。

示例代码:

//Function call from Application
<php>
//Conectamos con la BBDD
$db = connectBbdd("modelo");

$mongoNci = $_SESSION["sesion_nci"];
$collection = new MongoCollection($db, 'users');
$js = "function() {
return this.Nci == '$mongoNci';
}";
$cursor = $collection->find(array('$where' => $js));
$array = iterator_to_array($cursor);
</php>

<php>
function connectBbdd($dbname){
Mongo::setPoolSize(10);
$m = new MongoClient("mongodb://ipremote:port");
$db = $m->$dbname;

return $db;
}
</php>

最佳答案

对于错误信息,可能是连接数超过池大小10,连接被拒绝。

由于您的查询速度很慢,也有可能其中一些查询仍在运行 - 占用了一些连接。

关于并发,我不是100%确定,但可能是因为机器上的负载可能太高而无法并发处理查询。

关于php - MongoDB + PHP 无并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32943067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com