随笔分类 - golang
摘要:==引入包== go get github.com/go-vgo/robotgo ==源代码== package main import ( "fmt" "github.com/go-vgo/robotgo" "strconv" "strings" "time" ) func main() { br
阅读全文
摘要:==目的== 增加对服务器使用情况的监控。 ==引入== go get github.com/shirou/gopsutil go get github.com/yusufpapurcu/wmi ==代码== package main import ( "fmt" "github.com/shiro
阅读全文
摘要:==事件背景== 项目中需要接收设备上报的时序数据,写入到Influxdb中,在压力测试过程中发现服务器CPU占用的非常高, 使用pprof解析了CPU占用的详细信息之后,发现Influxdb的AddField方法占用的CPU较多,记录一下这个问题。 ==程序版本== Influxdb:2.0 go
阅读全文
摘要:==背景== 程序研发完之后,发现程序会异常结束,然后由容器重新拉起,重启的频率不定,为了排查这个问题,准备使用pprof找找线索。 ==相关文档== pprof性能调优 读懂pprof生成的报告 ==我的程序== 我的程序是基于开源组件gmqtt,基于gmqtt增加了自定义插件,插件包括数据写入、
阅读全文
摘要:==背景== 一直都是使用showdoc来管理接口文档,有些麻烦。 在网上调查了一下自动管理文档的插件,发现大家都在用swagger, 于是尝试用一下gin-swagger插件 ==版本== go版本:1.18 ==插件安装== 1、安装swag命令插件,用于执行swag命令 go get gith
阅读全文
摘要:==故事背景== 工业物联场景经常会用到mqtt协议,调研了开源组件gmqtt,尝试做一些改造实验。 ==改造内容== 增加写入数据至influxdb的处理 ==改造过程== 【下载代码】 github路径:https://github.com/DrmagicE/gmqtt 下载代码zip包,生成自
阅读全文
摘要:==官方文档== https://github.com/DrmagicE/gmqtt/blob/master/plugin/README.md ==安装命令== cd至gmqtt根目录:cd D:\work\10_Git\golang\src\gmqtt 执行命令:go install ./cmd/
阅读全文
摘要:==问题== 执行gmqtt命令的install拨错。 环境:Windows10 PS D:\work\10_Git\golang\src\gmqtt> go install ./cmd/gmqctl go install github.com/DrmagicE/gmqtt/cmd/gmqctl:
阅读全文
摘要:==背景== 找了很久,xorm正经的构建复杂sql的方式,记录一下 ==SQL样例== SELECT t1.id, t1.rules_unique, t1.device_id, t1.point_id, t1.point_judge, t1.point_value, t1.alarm_time,
阅读全文
摘要:直接上代码 package main import ( "errors" "fmt" "golang.org/x/sync/errgroup" ) func main() { group := new(errgroup.Group) nums := []int{0, 1, -1, 2} ch :=
阅读全文
摘要:==背景== 以前导出文件的时候,都是先把文件扔到某一个临时路径,然后返回给前端这个临时路径,前端收到这个路径之后在下载文件 这次想试试数据不落地,直接返回给前端文件流,这样可以减少复杂性 ==代码样例== 【封装应答】 // Write 封装返回文件流 func Write(ctx *gin.Co
阅读全文
摘要:==下载依赖== go get github.com/influxdata/influxdb-client-go 如果下载不下来,可以通过控制台输入 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn ==官网地址== http
阅读全文
摘要:==导入依赖== go get github.com/xuri/excelize/v2 ==代码样例== package main import ( "fmt" "github.com/xuri/excelize/v2" ) type Fruit struct { Id uint Name stri
阅读全文
摘要:==安装== go get github.com/go-xorm/xorm ==代码== package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" ) type PointInfo
阅读全文
摘要:==问题描述== 如下代码,验证golang的xorm基本用法, 在init中加载了xorm的engine,并赋值给全局变量xe,结果在main中报空指针,提示xe为nil package main import ( "fmt" _ "github.com/go-sql-driver/mysql"
阅读全文
摘要:==yaml内容== gin_mode: release authors: - "111" - "222" age: 18 dev: password: 123 test: password: 88 ==读写程序== package main import ( "fmt" "gopkg.in/yam
阅读全文
摘要:==Json转Map== package main import ( "encoding/json" "fmt" ) func main() { jsonStr := ` { "name": "张三", "age": 18 } ` var mapResult map[string]interface
阅读全文
摘要:==下载依赖== go get github.com/go-redis/redis ==代码样例== package main import ( "fmt" "github.com/go-redis/redis" ) func main() { client := redis.NewClient(&
阅读全文
摘要:==现象== 试了一下gin的demo。换了一个工程,把代码复制过去,然后发现代码报红, 但是debug启动,go build都正常,如下所示 ==解决办法== 推荐博客:https://blog.csdn.net/weixin_33481022/article/details/113075317
阅读全文
摘要:==表结构== CREATE TABLE `point_info` ( `id` BIGINT(19) NOT NULL COMMENT '自增ID', `product_key` VARCHAR(50) NOT NULL COMMENT '产品标识' COLLATE 'utf8mb4_genera
阅读全文