Go扩展包(十二):cron
1.介绍
在Linux中,通过crontab命令使任务在约定的时间执行已经计划好的工作,而Go由于语言的特性,不适合直接使用crontab来管理计划任务,cron (目前 Star8.3k)是一个用Go实现的定时任务库,支持秒级定时任务,可以满足绝大多数工作场景需求。
在Linux中,通过crontab命令使任务在约定的时间执行已经计划好的工作,而Go由于语言的特性,不适合直接使用crontab来管理计划任务,cron (目前 Star8.3k)是一个用Go实现的定时任务库,支持秒级定时任务,可以满足绝大多数工作场景需求。
Colly是Golang世界中最知名的Web爬虫框架,它提供简洁的 API,拥有强劲的性能、可以自动处理 cookie&session、提供灵活的扩展机制,同时支持分布式抓取和多种存储后端(如内存、Redis、MongoDB等)。
Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动机。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎。
testing 包为Go 语言提供自动化测试的支持。通过 go test 命令来执行单元测试文件,单元测试文件命名格式为: xxx_test.go,在单元测试文件中,根据测试类型不同可以分为:功能测试函数、基准测试函数,区别如下:
redis官网推荐使用redigo(https://github.com/gomodule/redigo),截止到今天Github Start是8.2k 但go-redis(https://github.com/go-redis/redis)使用的人更多, 并且go-redis封装得更好。截止到今天Github Start 是12.1k。
JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。
ExcelizeExcelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.15 或更高版本。
Go标准包math,提供了基本的数学常数和数学函数。
|
|
|
|
|
|
@@注意: golang没有四舍五入函数,常见处理先+0.5,然后向下取整!
gorm是一个使用Go语言编写的ORM框架。 它文档齐全,对开发者友好,支持主流数据库。官方中文文档 https://gorm.io/zh_CN/docs/index.html
|
|
GORM 官方支持的数据库类型有: MySQL, PostgreSQL, SQlite, SQL Server,这里只讲常见的MYSQL。其他类型数据库参见官方文档。
Go的标准包encoding/json实现了json对象的编码和解码。
这篇文章主要讲的是结构体中嵌套匿名字段时的序列化和反序列化,因结构体在参与序列时会有很多细节规则,平时常用的也是结构体,至于map和slice可参考历史文章 Go学习(二十三):JSON编码解析使用