p2 project
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.

86 lines
2.7 KiB

<?php
namespace app\admin\controller;
use app\utility\MongoConnection;
use MongoDB\BSON\Regex;
use think\facade\Cache;
class Test extends AdminBaseController
{
public function index()
{
$appNumber = env('APP_NUMBER');
$appRootPath = app()->getRootPath();
$appAppPath = app()->getAppPath();
$memoryLimit = ini_get('memory_limit');
$uploadMax = ini_get('upload_max_filesize');
$postMax = ini_get('post_max_size');
$max_execution_time = ini_get('max_execution_time'); //最大执行时间(秒)
$max_input_time = ini_get('max_input_time'); // 输入解析时间限制
return json(['code' => '0', 'msg' => 'SUCCESS', 'data' => [
'memory_limit' => $memoryLimit,
'upload_max' => $uploadMax,
'post_max' => $postMax,
'max_execution_time' => $max_execution_time,
'max_input_time' => $max_input_time,
'app_root_path' => $appRootPath,
'app_path' => $appAppPath,
'app_number' => $appNumber
]]);
}
public function testMongo()
{
$client = MongoConnection::getClient();
$collection = $client->selectCollection('bourse', 'stockListBak');
// 分页计算
$page = 1;
$pageSize = 10;
$options = [
'skip' => ($page - 1) * $pageSize,
'limit' => $pageSize,
'sort' => ['_id' => -1], // 按创建时间倒序
];
// 构造查询条件
$filter = [];
$filterName = 'xxx';
if (!empty($filterName)) {
// 使用正则表达式进行模糊匹配(i 表示不区分大小写)
$filter['Name'] = [
'$regex' => 'POP',
'$options' => 'i' // i = ignore case
];
}
// 查询数据
$cursor = $collection->find($filter, $options);
$total = $collection->countDocuments($filter);
// 将 BSON 文档转换为数组
$results = iterator_to_array($cursor);
$data = [];
foreach ($results as $item) {
$arr = (array)$item;
$data[] = $arr;
if ($arr['Name'] == "POPULAR FOUNDATIONS LIMITED") {
$oidArr = (array)$arr['_id'];
echo "oid===".$oidArr['oid'];
// 将目标缓存到redis队列中
$res = Cache::store('redis')->lPush('STOCK_MARKET_TOP_DATA', $oidArr['oid']);
echo "cache res==";
var_dump($res);
echo PHP_EOL;
}
}
return json( [
'total' => $total,
'page' => $page,
'pageSize' => $pageSize,
'data' => $data
]);
}
}