Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 测试motor.MotorClient()连接_Mongodb_Tornado Motor - Fatal编程技术网

Mongodb 测试motor.MotorClient()连接

Mongodb 测试motor.MotorClient()连接,mongodb,tornado-motor,Mongodb,Tornado Motor,我想知道如何检查电机连接是否成功。如果我终止mongod进程并执行以下操作: con = motor.MotorClient(host,port) 我在fd 11:ECONREFUSE上发现[W 150619 00:38:38 iostream:1126]连接错误“ 这很有意义,因为没有服务器在运行。然而,因为这不是一个例外,我不知道如何检查这种情况 我想我可以检查con.is_mongos,但它似乎总是假的(文档中也有说明) 如何检查上述错误场景?通常,答案是不检查。不要检查到MongoDB

我想知道如何检查电机连接是否成功。如果我终止mongod进程并执行以下操作:

con = motor.MotorClient(host,port)
我在fd 11:ECONREFUSE上发现[W 150619 00:38:38 iostream:1126]连接错误“

这很有意义,因为没有服务器在运行。然而,因为这不是一个例外,我不知道如何检查这种情况

我想我可以检查con.is_mongos,但它似乎总是假的(文档中也有说明)

如何检查上述错误场景?

通常,答案是不检查。不要检查到MongoDB的连接是否正常工作。您可能会发现它现在正在工作,但下一个操作可能会失败——您的系统管理员可能会拔掉电缆,服务器崩溃,等等。由于您需要在以后的应用程序中处理错误,所以提前检查电机是否已成功连接是没有意义的

如果你坚持这种毫无意义的检查,即使你知道它不会给你带来任何好处,那么你可以做:

@gen.coroutine
def am_i_momentarily_connected_to_mongodb():
    yield MotorClient().admin.command('ismaster')
如果您的iLoop已经启动,并且您处于协同程序中,那么您可以执行以下操作:

yield am_i_momentarily_connected_to_mongodb()
或者,如果尚未开始循环:

IOLoop.instance().run_sync(am_i_momentarily_connected_to_mongodb)
但正如我所说,分布式系统的本质是,发现服务器现在可用并不能告诉您接下来会发生什么