码迷,mamicode.com
首页 > 其他好文 > 详细

Golang 定时器

时间:2020-03-31 19:23:28      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:import   Golan   tin   ack   根据   defer   turn   stop   复制   

近期在学习Golang ,想通过Golang 实现一个Crontab 的管理。虽然github 已经有很多成熟的轮子可以使用。但是还是只有自己的轮子,玩起来才最放心。计划golang 的cron 使用三部分构成,client ,server ,web 端。其中server 端提供定时任务的分发控制,以及监控各个client 的健康状况。Client 端复制执行具体的任务,并且上报日志。web 端根据Server 端提供的RestFul API 来渲染管理后台。

package main

import (
	"fmt"
	"sync"
	"time"
)


/**
创建一个定时器
 */
func main() {
	ticker := time.NewTicker(1*time.Second)
	quit := make(chan int)
	var wg sync.WaitGroup
	wg.Add(1)
	go func(){
		defer wg.Done()
		fmt.Println("child goroutine bootstramp start")
		for {
			select {
				case <-ticker.C:
					fmt.Println("ticker.")
				case <-quit:
					fmt.Println("work well")
					ticker.Stop()
					return
			}
		}
		fmt.Println("child goroutine bootstramp end")
	}()

	time.Sleep(10 * time.Second)
	quit<- 1
	wg.Wait()
}

Golang 定时器

标签:import   Golan   tin   ack   根据   defer   turn   stop   复制   

原文地址:https://www.cnblogs.com/roverliang/p/12607012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!