
golang
文章平均质量分 58
宁静致远_淡泊明志
这个作者很懒,什么都没留下…
展开
-
golang go.mod引用本地包教程
1:建立目录gotestpro,命令mkdir gotestpro2:建立main函数,。内容如下:package main import ( "fmt" "lib" _ "net/http" "github.com/tidwall/sjson") func init() { println("main.init.2") } func main() { test() } func init() { println("main.init.1")原创 2021-09-10 18:42:53 · 1639 阅读 · 0 评论 -
golang context的WithTimeout实现调用自定义函数超时处理
context的WithTimeout实现调用自定义函数超时处理func UploadContent(content, objectName string) chan error { errCh := make(chan error, 1) return errCh}func UploadFromString(content, objectName string) { ctx, cancel := context.WithTimeout(context.Background(), t原创 2020-12-04 19:26:20 · 1028 阅读 · 0 评论 -
golang gomodule迁移以及遇到的问题
go-module迁移解决的问题:1:可以选择依赖的第三方库版本,这样可以解决有些新旧版本依赖出现问题的情况2:可以解决本地代码的冗余问题,他会在$HOME/go/pkg/mod下面建立目录保存库的情况迁移步骤:当前会话打开go-module:export GO111MODULE="on" 全局打开go-module用:go env -w GO111MODULE=on 初始化go.mod:go mod init [host/namespace/module-name] 比如:go m.原创 2020-06-03 20:51:03 · 1017 阅读 · 0 评论 -
golang简易令牌桶算法实现
基本思路:定义一个chan,chan大小为需要限制的qps大小,go一个协程启动tick,每1000/qps时间在tick中写入数值,启动另一个协程,读取chan中的值,如果读取到chan中有值,则向下层接口发送请求。代码如下:package mainimport ( "fmt" "time" "httpclient")var LEN int = 10...原创 2020-04-18 15:33:56 · 1161 阅读 · 0 评论 -
golang mysql读写超时时间设置为0的情况
func initDB() (*sql.DB, error) { connectStr := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?timeout=%dms&readTimeout=%dms&writeTimeout=%dms&charset=utf8", User, Password, Host, Port, DbName, ConnT...原创 2020-03-18 18:49:19 · 3006 阅读 · 0 评论 -
关于golang程序内存问题查询的记录
背景:golang程序启动时,出现大量申请内存的情况,并且内存申请到一定值的时候,稳定住,不在增长现象:经过测试,程序启动是会将数据库内容加载到内存,但是数据库中的数据量和程序申请的内存数量不匹配。比如数据库的数据量只有2G,但是程序启动后,居然申请到了10G的内存。并且只有在线上的情况下,该现象才会复现,也就是说,有请求进来时才会出现该现象。怀疑1:程序有内存泄露,原因是只有在处理...原创 2020-03-15 17:35:51 · 1758 阅读 · 0 评论 -
golang sort排序自定义的结构体和map中的某一个值
//利用sort对自定义结构体排序package mainimport ( "fmt" "sort")type Person struct { Name string Age int}type Persons []Personfunc (p Persons) Len() int { return len(p)}func (p P...原创 2020-03-14 18:29:26 · 1587 阅读 · 0 评论 -
golang mysql错误
golang的mysql库打印错误为:[mysql] 2020/03/12 17:53:26 packets.go:33: read tcp 10.141.0.103:57656->10.141.0.234:3306: i/o timeout[mysql] 2020/03/12 17:53:26 statement.go:27: invalid connection[mysql] 2...原创 2020-03-12 18:05:39 · 1993 阅读 · 0 评论 -
golang 包包含的错误。package问题
在golang中package是个困惑的概念, 特别是package还可以与folder不同名, 委实让我恶心了一把.关于golang的package的最佳实践:package is folder.package name is folder name.package path is folder path.信耶稣得永生!1. 同一个folder存在不同package, 编...转载 2020-03-11 13:44:30 · 11251 阅读 · 0 评论 -
golang 连接zk,注册zk代码
package mainimport ("encoding/json""fmt""github.com/samuel/go-zookeeper/zk""strconv""strings""time""net")var zkservers stringvar conn *zk.Conntype zklistener f...原创 2020-03-08 14:40:24 · 2377 阅读 · 0 评论 -
golang 调用mysql 连接数泄露的问题以及最大连接数和最大空闲连接数解释
1:golang mysql时,Prepare报错:dial tcp 127.0.0.1:3306: getsockopt: connection refused'解决办法:查看mysql初始化时候的用户名密码是否正确2:mysql最大连接数和最大空闲连接数测试测试程序:package mainimport ( "fmt" "database/sql" _"githu...原创 2020-03-06 15:24:21 · 3885 阅读 · 0 评论 -
golang调用ffmpeg根据帧率截取视频中的图片和调用ffmpeg获取视频时长
package mainimport ( "context" "path/filepath" "syscall" "regexp" "os/exec" "strconv" "strings" "bytes" "time" "fmt" "os")var video_length_regexp *regexp.Regexp = regexp.Mus...原创 2020-03-03 14:56:25 · 11170 阅读 · 0 评论 -
golang遇到的错误 SSL connection error...
# 针对 go1.11以下版本,需要先设置好 GOPATHexport GOPATH=YOUR_PROJECT_DIRcd YOUR_PROJECT_DIR# 下载你所需要的包,比如需要使用 irpc,go get 会自动下载依赖的包go get -u code.aliyun.com/module-go/irpc# 如果发现 go get 报错:SSL connect...原创 2020-03-02 11:31:45 · 940 阅读 · 0 评论 -
同时多次执行一条mysql的update语句
背景:程序中可能存在同时运行同一条sql语句的可能性,比如多台机器同时运行一个服务,再异步回调中,可能会多台机器同时update数据库中内容,测试是否会产生影响?程序如下:functestMysql() {fmt.Println("requestid:", this.RequestId) videoTableName1 := "table name" var sqlUp...原创 2019-12-30 13:12:33 · 4551 阅读 · 1 评论 -
golang里面的类和继承
golang语言是一门2012年才发布1.0版本的一门年轻的语言,但是年轻不并影响他的影响力,使用golang的公司越来越多。据说go语言的发明是为了解决21世纪多核和网络环境下越来越复杂的编程问题。go的创始人有:Robert Griesemer,Rob Pike,Ken Thompson,有没有看到那个很熟悉的名字,没错,就是大名鼎鼎的Ken Thompson,他是C语言和Unix的发明人,当...原创 2019-12-01 20:04:29 · 2315 阅读 · 0 评论 -
golang里面的多态怎么玩?
C++里面有多态是其三大特性之一,那么golang里面的多态我们该怎么实现?golang里面有一个接口类型interface,任何类型只要实现了接口类型,都可以赋值,如果接口类型是空,那么所有的类型都实现了它。因为是空嘛。golang里面的多态就是用接口类型实现的,即定义一个接口类型,里面声明一些要实现的功能,注意,只要声明,不要实现,例如:type People interface...原创 2019-11-24 19:24:22 · 2302 阅读 · 0 评论