/images/avatar.png

Schaepher's Blog

GORM 底层实现

查询原理 执行查询 gorm.io/gorm/callbacks/query.go::Query(db *gorm.DB) 扫描结果集 gorm.io/gorm/scan.go::Scan(rows *sql.Rows, db *DB, initialized bool) 扫描结果集的过程 取出结果集的所有字段 根据 Find() 时传入的引用判断存放的容器。比如用 map[string]

MongoDB存储时间点数据

比较通用的一种方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "date" : "2020-11-05 00:00:00.000", "domain": "test.com", "data": { "00:00" : { "ts": 1604505600, "bandwidth": 111.222, "cost": 333.444 }, "00:01" : { "ts": 1604505660, "bandwidth": 555.666, "cost": 777.888 } } } 查询支持按五分钟合并: 1 2 3

Python

子进程 通过 Shell 执行: 1 2 3 4 5 # -*- coding: utf-8 -*- from subprocess import Popen, PIPE p = Popen(["echo '1+1' | bc"], shell=True, stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() print(stdout, stderr) 不通过 Shell 执行: 1 2 3 4 5 6 7 8 9 # -*- coding: utf-8 -*- from subprocess import Popen, PIPE p1 = Popen(["echo", "1+1"], shell=False,