随笔分类 -  Go-pkg

1 2 下一页

golang errgroup 的超时检测
摘要:> golang errgroup 的作用. errgroup 的超时检测通常是一种事后得到结果的方式。 errgroup本身并不直接支持超时控制,而是依赖于与之关联的context.Context来实现超时和取消功能。 当context超时时,它会关闭Done通道,这将通知errgroup中的协程 阅读全文

posted @ 2024-05-29 21:02 ercom 阅读(71) 评论(0) 推荐(0)

golang errgroup 的作用
摘要:errgroup 是 Go 中用于并发控制和错误处理的一个工具,提供了一种方便的方式来协调多个goroutine。 它允许你在一个组中运行多个goroutine,并等待它们全部完成,同时收集和返回第一个发生的错误。 它的主要作用包括: 同步: errgroup.Group 提供了一个 Wait 方法 阅读全文

posted @ 2024-05-29 20:59 ercom 阅读(139) 评论(0) 推荐(0)

golang 有那么多系统包 该如何了解和学习
摘要:在学习和了解Golang(Go语言)的系统包时,可以遵循以下步骤来逐步熟悉并掌握它们: 1. 官方文档阅读: 首先从官方文档入手,Go的标准库文档非常详尽且易于理解。你可以访问 Go标准库 来查看各个包的详细说明、API使用方法以及示例代码。这将帮助你快速掌握每个包的核心功能和用法。 2. 分类学习 阅读全文

posted @ 2024-03-07 01:18 ercom 阅读(42) 评论(0) 推荐(0)

[Pholcus] Go项目 Pholcus 编写静态规则文件, 0 到 1
摘要:1. 初始化项目包,go mod init [module-path] 比如:go mod init github.com/abc/efg 2. 新建一个目录放置我们编写的规则 go 文件。 3. main.go 用下划线的方式引入规则文件,用于触发 init 函数内的注册。 4. 启动:go ru 阅读全文

posted @ 2022-01-04 18:08 ercom 阅读(109) 评论(0) 推荐(0)

[Pholcus] Go项目 Pholcus 源码逻辑分析 species.go
摘要:「代码结构」 结构体:蜘蛛种类列表(即:蜘蛛规则列表) 变量:全局蜘蛛种类实例 方法:向蜘蛛种类清单添加新种类 方法:获取全部蜘蛛种类 方法:通过名字获取蜘蛛 「总体功能」 添加新种类:通过 Spider.name 作为键,Spider 作为值,添加到 SpiderSpecies.hash 中。 获 阅读全文

posted @ 2021-12-16 19:43 ercom 阅读(88) 评论(0) 推荐(0)

[Go] flag package 指南: 命令行参数标记的解析
摘要:flag 是 Golang 的官方包。 支持用法有三种,不同之处是二三两种用法是 Var() 函数可以绑定 flag 到一个变量上。 直接调用指定类型的函数有多种,如 flag.String(), Bool(), Int() 等等。 import "flag" var nFlag = flag.In 阅读全文

posted @ 2021-12-08 21:31 ercom 阅读(163) 评论(0) 推荐(0)

[FAQ] 部署二进制运行时 go-ego/gse 如何正确加载分词字典
摘要:运行Golang编译后二进制运行时,此时运行二进制时所在目录就是Golang源码程序认为的根目录了。 所以只需要把字典文件拷贝到与二进制所在同一目录内,然后使用 seg.LoadDict('dictionary.txt') 加载即可。 注意:如果是类似 ./dist/xxx 来运行二进制,那么文件需 阅读全文

posted @ 2021-12-06 21:23 ercom 阅读(274) 评论(0) 推荐(0)

[Gse] 高效的Golang中文分析库推荐
摘要:优点:用法简单,支持各种语言,基本满足需求。 缺点:默认分词字典文件有 8M 需测试使用速度。 我们可以直接封装一个简单的辅助方法来实现分词功能: // @author cnblogs.com/farwish package service import ( "github.com/go-ego/g 阅读全文

posted @ 2021-12-03 21:37 ercom 阅读(808) 评论(0) 推荐(0)

[FAQ] gormV2 Too many connections
摘要:gormV2 中不再有v1的 db.Close() 方法。 取而代之的 close 方式是如下: sqlDB, err := DB.DB() sqlDB.Close() https://github.com/go-gorm/gorm/issues/3145 另外,gormV2 内部维护了连接池,设置 阅读全文

posted @ 2021-02-08 23:27 ercom 阅读(1224) 评论(0) 推荐(0)

[Go] gorm 错误处理 与 链式/Finisher方法
摘要:使用 gorm 在调用 Finisher 方法之后,建议都进行错误检查。 Finishers 是会立即执行注册回调的方法,然后生成并执行 SQL,比如这些方法: Create, First, Find, Take, Save, Update, Delete, Scan, Row, Rows…完整方法 阅读全文

posted @ 2021-01-03 16:43 ercom 阅读(1526) 评论(0) 推荐(0)

[FAQ] golang-migrate/migrate error: migration failed in line 0: (details: Error 1065: Query was empty)
摘要:当我们使用 migrate create 创建了迁移文件。 没有及时填写内容,此时运行 migrate 的后续命令比如 up、down 会抛出错误: error: migration failed in line 0: (details: Error 1065: Query was empty) R 阅读全文

posted @ 2021-01-01 21:53 ercom 阅读(384) 评论(0) 推荐(0)

[FAQ] golang-migrate/migrate error: default addr for network '127.0.0.1:3306' unknown
摘要:按照项目github文档上所示,在使用 mysql 时你可能会这样写: $ migrate -path db/migrations -database mysql://root:123456@127.0.0.1:3306/mydb version -database 用于指定数据库 DSN 格式的连 阅读全文

posted @ 2021-01-01 18:49 ercom 阅读(1094) 评论(0) 推荐(0)

[Go] golang-migrate/migrate 快速使用指南
摘要:1. CLI 用途的安装 [文档] [确保] CLI 工具使用 go 命令安装时,不应该在 go.mod 所在的目录中执行命令,也就是先进入到其它非项目目录内。 $ go get -tags 'postgre' github.com/golang-migrate/migrate/v4/cmd/mig 阅读全文

posted @ 2021-01-01 16:07 ercom 阅读(5229) 评论(0) 推荐(0)

[FAQ] Jetbrains 官网不能访问,获取 Goland 的下载地址
摘要:2020.02 安装包下载 Link:https://www.cnblogs.com/farwish/p/14186441.html 阅读全文

posted @ 2020-12-24 21:12 ercom 阅读(355) 评论(0) 推荐(0)

[Go] Colly 使用 POST 提交 application/x-www-form-urlencoded 示范
摘要:Colly 提供了 Post 和 PostRaw 方法,它们的参数类型不一样,需要注意。 目标地址接受指定的 Content-Type,可以通过设置 request Header。 局部代码: // @author <cnblogs.com/farwish> c := colly.NewCollec 阅读全文

posted @ 2020-06-28 15:47 ercom 阅读(1751) 评论(0) 推荐(0)

[Go] go-nsq 使用指南
摘要:首先你需要有一个 nsq 的服务端,nsq 由三部分构成:nsqd、nsqlookupd、nsqadmin。 快速启动 nsq 一个节点看这里:https://github.com/farwish/nsq-launcher go-nsq 是众多客户端中的一个,使用 golang 编写,我们在逻辑代码 阅读全文

posted @ 2020-06-17 23:57 ercom 阅读(533) 评论(0) 推荐(0)

[Go] 有了 cast 组件, golang 类型转换从此不再困扰
摘要:在 golang 中,参数和返回值之间往往涉及 int、string、[]、map 等之间的转换。 如果是手动去处理,一容易出错,二不能兼容多数类型,比较麻烦。 使用 cast,能够让代码更健壮、可维护性也更高。 Refer: Golang的类型转换 Refer:https://github.com 阅读全文

posted @ 2020-06-08 07:28 ercom 阅读(1069) 评论(0) 推荐(0)

[Go] freecache 设置 SetGCPercent 的作用
摘要:你需要对 freecache 有一个大致了解,freecache 的内存空间是预分配的。 假设你的程序占用了 50M 内存,那么开启 freecache 预分配 200M 空间,总共下来就是 250M 空间被占用。 SetGCPercent 的作用是设置垃圾回收比例,简单来说,新插入数据比例占旧数据 阅读全文

posted @ 2020-06-03 20:44 ercom 阅读(2102) 评论(0) 推荐(0)

[Go] gorm 返回指定模型数据的处理方式
摘要:重新 var 声明一个变量,类型为包含指定字段的结构体。 查询的时候,还是使用原始模型类型的变量。 example: // For return data var retMember struct { Hash string `json:"hash"` Name string `json:"name 阅读全文

posted @ 2020-05-27 21:06 ercom 阅读(2627) 评论(0) 推荐(0)

[Go] 浅谈 gorm 执行 AutoMigrate 的两种时机
摘要:第一种就是直接在操作 model 的逻辑中,执行 db.AutoMigrate,模型没有更新时不会有 schema 相关的 sql 被执行。 第二种就是单独定义一个属于 main 包的 go 文件,专门用于处理 Migrate。 有其它想法可留言讨论。 Refer:GORM奇技淫巧 Refer:ht 阅读全文

posted @ 2020-05-26 19:28 ercom 阅读(5160) 评论(0) 推荐(0)

1 2 下一页