tigago

module
v1.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2020 License: MIT

README

tigago

Go develop commonly used component library package.

About package

.
├── chanlock            chan实现trylock乐观锁
├── crypto              常见的md5,sha1,sha1file,aes/des,ecb,openssl_encrypt实现
├── def                 为兼容php其他语言而定义的空数组,空对象
├── glog                基于mutex乐观锁实现的每天流动式日志,将日志内容直接落地到文件中
├── gnsq                go-nsq基本操作封装
├── goredis             基于go-redis/redis封装的redis客户端使用函数(支持cluster集群)
├── gpprof              pprof性能分析监控封装
├── gqueue              通过指定goroutine个数,实现task queue执行器
├── grecover            golang panic/recover捕获堆栈信息实现
├── gredigo             基于redigo封装而成的go redis辅助函数,方便快速接入redis操作
├── gresty              go http client support get,post,delete,patch,put,head,file method
├── gtask               golang task在独立协程中调度实现
├── gtime               time相关的一些辅助函数
├── gutils              file,num,str字符串相关的一些辅助函数,比如Uuid,HTMLSpecialchars,Uniqid等php函数实现
├── gxorm               golang xorm客户端简单封装,方便使用
├── jsontime            fix gorm/xorm time.Time json encode/decode bug
├── logger              基于zap日志库进行一些必要的优化的日志库
├── monitor             基于prometheus二次开发、封装的一些函数,主要用于http/job/grpc服务性能监控
├── mutexlock           基于sync.Mutex基础上拓展的乐观锁
├── mysql               基于go gorm库封装而成的mysql客户端的一些辅助函数
├── mytest              thinkgo 一些单元测试
├── redislock           基于redigo实现的redis+lua分布式锁实现
├── runner              runner用于按照顺序,执行程序任务操作,可作为cron作业或定时任务
├── sem                 指定数量的空结构体缓存通道,实现信息号实现互斥锁
├── setting             通过viper+fsnotify实现配置文件读取,支持配置热更新
├── work                利用无缓冲chan创建goroutine池来控制一组task的执行
├── workpool            workpool工作池实现,对于百万级并发的一些场景特别适用
├── xerrors             自定义错误类型,一般用在api/微服务等业务逻辑中,处理错误
├── xsort               基于sort标准库封装的sort操作函数
└── yamlconf            基于yaml+reflect实现yaml文件的读取,一般用在web/job/rpc应用中

Usage

golang1.11+版本,可采用go mod机制管理包,需设置goproxy
go version >= 1.13
设置goproxy代理
vim ~/.bashrc添加如下内容:
export GOPROXY=https://goproxy.io,direct
或者
export GOPROXY=https://goproxy.cn,direct
或者
export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

让bashrc生效
source ~/.bashrc

Test unit

$ go test -v
997: b75567dc6f88412d55576e4b09127d3f
998: c3923160f2304849734c0907083f7f65
999: 8b7a6dce56d346b567c65b3493285831
--- PASS: TestUuid (0.05s)
    uuid_test.go:13: 测试uuid
PASS
ok      github.com/daheige/tigago/mytest       15.841s

License

MIT

Directories

Path Synopsis
chan实现trylock乐观锁
chan实现trylock乐观锁
* * package glog 将日志直接落地到磁盘,支持每天流动式日志记录 * 对于需要实时展示日志的业务,建议用这个glog库 * 相比logger库基于zap来说,速度相对要慢一点 * 每天流动式日志实现 * 操作日志记录到文件,支持info,error,debug,notice,alert等 * 写日志文件的时候,采用乐观锁方式对文件句柄进行加锁 * 等级参考php Monolog/logger.php * 日志切割机制参考lumberjack包实现 * json encode采用jsoniter库快速json encode处理 * 支持Debug,Info,Error,Warn等方法
* * package glog 将日志直接落地到磁盘,支持每天流动式日志记录 * 对于需要实时展示日志的业务,建议用这个glog库 * 相比logger库基于zap来说,速度相对要慢一点 * 每天流动式日志实现 * 操作日志记录到文件,支持info,error,debug,notice,alert等 * 写日志文件的时候,采用乐观锁方式对文件句柄进行加锁 * 等级参考php Monolog/logger.php * 日志切割机制参考lumberjack包实现 * json encode采用jsoniter库快速json encode处理 * 支持Debug,Info,Error,Warn等方法
* golang nsq消费队列封装,提供如下功能点 1、初始化生产者 2、初始化消费者 3、提供不同方式的消费者消费模式 4、当调用InitProducer,InitConsumer后可以直接调用nsq上底层方法 也可以使用本包提供的方法,其实也是调用nsq底层方法 5、关于优雅退出生产者和消费者,请看nsq_test.go 6、通过直接连接到nsqd进行消费,速度快,但不方便拓展,建议通过lookupd查找节点进行消费
* golang nsq消费队列封装,提供如下功能点 1、初始化生产者 2、初始化消费者 3、提供不同方式的消费者消费模式 4、当调用InitProducer,InitConsumer后可以直接调用nsq上底层方法 也可以使用本包提供的方法,其实也是调用nsq底层方法 5、关于优雅退出生产者和消费者,请看nsq_test.go 6、通过直接连接到nsqd进行消费,速度快,但不方便拓展,建议通过lookupd查找节点进行消费
package gqueue 通过指定goroutine个数,实现task queue执行器 提交任务到tash chan中,然后不断从chan中取出task执行 结合官方的sync.WaitGroup计数信号等待执行完毕 go goroutine非抢占式的,通过runtime.Gosched()让出cpu给其他goroutine
package gqueue 通过指定goroutine个数,实现task queue执行器 提交任务到tash chan中,然后不断从chan中取出task执行 结合官方的sync.WaitGroup计数信号等待执行完毕 go goroutine非抢占式的,通过runtime.Gosched()让出cpu给其他goroutine
Package grecover catch exec panic.
Package grecover catch exec panic.
Package gresty for go http client support get,post,delete,patch,put,head,file method.
Package gresty for go http client support get,post,delete,patch,put,head,file method.
file 文件相关的一些辅助函数 str_convert 字符串,数字相互转换的一些辅助函数 Package of gutils common function.
file 文件相关的一些辅助函数 str_convert 字符串,数字相互转换的一些辅助函数 Package of gutils common function.
package jsontime fix time.Time json encode/decode bug.
package jsontime fix time.Time json encode/decode bug.
logger 基于zap日志库,进行封装的logger库 支持日志自动切割
logger 基于zap日志库,进行封装的logger库 支持日志自动切割
* * Package mutexlock mutex trylock.
* * Package mutexlock mutex trylock.
* Package mysql of gorm library.
* Package mysql of gorm library.
* Package runner 用于按照顺序,执行程序任务操作,可作为cron作业或定时任务 runner 包可用于展示如何使用通道来监视程序的执行时间,如果程序运行时间太长,指定任务执行时间。
* Package runner 用于按照顺序,执行程序任务操作,可作为cron作业或定时任务 runner 包可用于展示如何使用通道来监视程序的执行时间,如果程序运行时间太长,指定任务执行时间。
利用无缓冲chan创建goroutine池来控制一组task的执行 1.
利用无缓冲chan创建goroutine池来控制一组task的执行 1.
Package workpool for do task in work pool.
Package workpool for do task in work pool.
*Package of xerrors 自定义错误类型,一般用在api/微服务等业务逻辑中,处理错误 支持是否输出堆栈信息,可以把stack信息记录到日志文件中,方便定位问题
*Package of xerrors 自定义错误类型,一般用在api/微服务等业务逻辑中,处理错误 支持是否输出堆栈信息,可以把stack信息记录到日志文件中,方便定位问题

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL