beego项目部署脚本

  准备上线用beego写的一个小项目,在vultr开了个日本节点,注册送50刀,免费用两个月,哈哈。
  之前还真没部署过编译型语言项目(Java白学了),也没去折腾capistrano了。参考beego的文档撸了个简单脚本,先凑合用吧。
  

Read more →

Go 多个goroutinue顺序打印数字

一. 10个goroutinue顺序打印0-9 # 常规的做法是用10个channel来挨个控制,其实可以用原子包实现,相当于加锁 func printInOrder() { wg := sync.WaitGroup{} var curr int32 for i := int32(0); i < 10; i++ { wg.Add(1) go func(num int32) { defer wg.Done() for { if n := atomic.LoadInt32(&curr); n == num { fmt.Println(num) atomic.AddInt32(&curr, 1) break } time.Sleep(time.Nanosecond) } }(i) } wg.Wait() } 二. 两个goroutinue分别打印奇偶数 # 同上,还是用原子包 func printMix() { wg := sync.WaitGroup{} var curr int32 wg.Add(2) go func() { defer wg.Done() for curr < 10 { if n := atomic.
Read more →