私はそのように私のmongoDB接続を維持しようとしています:
mongo **ptr = (mongo**)get_env(argv, US_VHOST_DATA);
if(!ptr[0]) {
mongo_replica_set_init( conn, "cluster" );
mongo_replica_set_add_seed( conn, "mongo1.mongood.com", 27017 );
mongo_replica_set_add_seed( conn, "mongo3.mongood.com", 27017 );
mongo_replica_set_add_seed( conn, "mongo4.mongood.com", 27017 );
mongo_replica_set_add_seed( conn, "mongo5.mongood.com", 27017 );
mongo_replica_set_add_seed( conn, "mongo6.mongood.com", 27017 );
mongo_replica_set_client( conn );
mongo_cmd_authenticate( conn, "dbname", "dbuser", "dbpass" );
ptr[0] = (mongo*)calloc(1, sizeof(conn));
} else {
conn[0] = *ptr[0];
}
int count = 0;
count = mongo_count( ptr[0], "dbname", "coll", NULL);
mongo_destroy( ptr[0] );
xbuf_xcat(reply, "<h3>%d</h3>", count);
しかし、明らかに、うまくいきません...私の目標は、各リクエストでの接続時間を回避することです(〜30ミリ秒)
それは可能ですか?この例では何が間違っていますか?
コードは文句を言いませんが、正しいカウント数の代わりに -1 を返すだけです。
ご協力ありがとうございました。
[編集] else ブロックの削除と mongo_destroy 行の削除は、期待どおりに機能します \o/