摘要: 安装Cronexpr包: go get -u github.com/gorhill/cronexpr 这个包支持七位时间控制 *(秒) *(分) *(时) *(日) *(月) *(周) *(年) 栗子: 每5秒执行一次: */5 * * * * * * 一个简单的小栗子 package main i 阅读全文
posted @ 2020-05-03 00:57 Ethan_Cheng 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 一、简介 Session是一段保存在服务器上的信息,当客户端第一次访问服务器时创建Session,同时也会创建一个名为beegosessionID,值为创建的Session的id的Cookie。 这个beegosessionID对应服务器中的一个Session对象,通过它就可以获取到保存用户信息的S 阅读全文
posted @ 2020-04-27 13:54 Ethan_Cheng 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 1.简介 (1)Http是无状态的协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否是同一个客户端,这样的设计严重阻碍了web程序的设计。 (2)Cookie是解决Http协议无状态的方案之一。 (3)Cookie实际上就是服务器保存在浏览器上的一段信息,浏览器有了Cookie 阅读全文
posted @ 2020-04-27 01:12 Ethan_Cheng 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 参考链接(查看更多):https://beego.me/docs/mvc/controller/router.md 基础路由 从 beego 1.2 版本开始支持了基本的 RESTful 函数式路由,应用中的大多数路由都会定义在 routers/router.go 文件中。最简单的 beego 路由 阅读全文
posted @ 2020-04-27 01:07 Ethan_Cheng 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 一.框架 框架:可复用的设计组件,它规定了应用的体系结构,明确了整个设计,协作各个组件之间的依赖关系,责任分配,和流程控制。通俗解释框架就是一堆代码的集合,为了提高软件的开发效率和质量,一般都会使用框架。 二.Beego简介 1.作者 谢孟军 2.简介 beego 是一个快速开发 Go 应用的 HT 阅读全文
posted @ 2020-04-26 19:20 Ethan_Cheng 阅读(440) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" "sync/atomic" ) /* 用原子来替换锁,其主要原因是: 原子操作由底层硬件支持,而锁则由操作系统提供的API实现 若实现相同功能,原子操作通常会更有效率 */ func main() { var a int64 = 123 //保 阅读全文
posted @ 2020-04-26 01:28 Ethan_Cheng 阅读(400) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" "sync" "time" ) func main() { //要监听的变量 bitcoinRising := false //创建条件 cond := sync.NewCond(&sync.Mutex{}) go func() { for { 阅读全文
posted @ 2020-04-25 21:38 Ethan_Cheng 阅读(235) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" "sync" "time" ) /* 读写锁 多路只读 一路只写 读写互斥 */ /*读写锁API介绍*/ func main101() { var rwm sync.RWMutex //锁定为写模式 一路只写 rwm.Lock() //解锁写 阅读全文
posted @ 2020-04-25 01:43 Ethan_Cheng 阅读(299) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" "sync" "time" ) /* mt.Lock() 抢锁 一次只能被一个协程锁住 其余想要抢到这把锁的协程阻塞等待至前面的协程将锁释放 mt.Lock()的可能性有两种: ①抢到锁,继续向下执行 ②没抢到,阻塞等待至前面的协程将锁释放 m 阅读全文
posted @ 2020-04-25 00:45 Ethan_Cheng 阅读(585) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" "sync" "time" ) /*等待组API介绍*/ func main071() { var wg sync.WaitGroup fmt.Println(wg) //向等待组添加一个协程(注册) wg.Add(1) //从等待组减掉一个协 阅读全文
posted @ 2020-04-24 23:31 Ethan_Cheng 阅读(475) 评论(0) 推荐(0) 编辑