接口项目uuid算法开发及验证-thinkphp6-rabbitmq
一、uuid算法开发
if (!function_exists('uuid')){
/**
* 生成uuid
* User: 龙哥·三年风水
* Date: 2024/6/7
* Time: 11:08
* @ param string $prefix
* @ return string
*/
function uuid($prefix = ''){
$s = [];
$microtime = microtime(true);
$rand_num = mt_rand();
$unique_id = uniqid($prefix, false);
$hexDigits = hash('sha256', $microtime . $rand_num . $unique_id);
$numbers = mt_rand(36, 46);
for ($i = 0; $i < $numbers; $i++) {
$s[$i] = substr($hexDigits,$i, 1);
}
$s[14] = '4';
if($numbers < 40){
$s[8] = $s[13] = $s[18] = $s[23] = '-';
}else{
$s[10] = $s[16] = $s[22] = $s[28] = '-';
}
$uuid = implode("",$s);
return empty($prefix) ? $uuid : $prefix.$uuid;
}
}
二、apache-jmeter工具测试
1、进程管理
2、header头管理
3、参数管理
4、说明
从100、500、1000、2000、5000、10000的并发,调用此方法后得出6个txt文件,下面验证文件里面的数据是否唯一
三、pythen3验证数据唯一性
# _*_ coding: utf-8 _*_
def public_read(file_name):
"""
读取txt文件并循环比对
: param file_name: 文件路径
: return:
"""
original_arr = [] #原数组
repeat_arr = [] #重复数组
with open(file_name,'r',encoding='utf-8') as file:
for line in file:
if line.replace('\n','') in original_arr:
repeat_arr.append(line.replace('\n', ''))
else :
original_arr.append(line.replace('\n', ''))
print("job原数组数组:", len(original_arr))
print("job重复数组:",repeat_arr)
if __name__ == '__main__':
public_read('./originalFile/test_log.txt')
public_read('./originalFile/test_log1.txt')
public_read('./originalFile/test_log2.txt')
public_read('./originalFile/test_log3.txt')
public_read('./originalFile/test_log4.txt')
四、提前说明
明天继续开发workman服务端开发模式