Golang 定時器


近期在學習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()
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM