You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
<?php
|
|
|
|
namespace app\utility;
|
|
|
|
|
|
|
|
use MongoDB\Client;
|
|
|
|
|
|
|
|
class MongoConnection
|
|
|
|
{
|
|
|
|
const QUOTE_DATA_BASE_NAME = 'bourse'; // 各类行情数据存储在mongodb中的数据库名称
|
|
|
|
const QUOTE_TOP_DATA_HASH_ARR = [
|
|
|
|
'3' => 'QUOTE_TOP_DATA_HASH_STOCK', //股票行情置顶数据Key
|
|
|
|
'19' => 'QUOTE_TOP_DATA_HASH_FOREX' //外汇行情置顶数据Key
|
|
|
|
];
|
|
|
|
// mongo中存储各类行情的集合名称
|
|
|
|
const COLLECTION_ARR = [
|
|
|
|
'3' => 'stockListBak', // 美股行情
|
|
|
|
'19' => 'forexListBak' // 外汇行情
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
private static $client = null;
|
|
|
|
|
|
|
|
public static function getClient() {
|
|
|
|
if (self::$client === null) {
|
|
|
|
$uri = "mongodb://".env('MONGODB.USERNAME').':'.env('MONGODB.PASSWORD').'@'.env('MONGODB.HOST').":".env('MONGODB.PORT');
|
|
|
|
self::$client = new Client($uri, [
|
|
|
|
'maxPoolSize' => 200, // 设置连接池最大连接数
|
|
|
|
'minPoolSize' => 10, // 设置连接池最小连接数(可选)
|
|
|
|
'serverSelectionTimeoutMS' => 5000, // 超时设置(防止请求挂死) 单位是毫秒
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
return self::$client;
|
|
|
|
}
|
|
|
|
}
|