periodic/periodic.go
func TickGo(interval time.Duration, procfunc gp.ProcessFunc) gp.Process {
	return gp.Go(func(proc gp.Process) {
		ticker := time.NewTicker(interval)
		goCallOnTicker(ticker.C, procfunc)(proc)
		ticker.Stop()
	})
}
func TickGo(interval time.Duration, procfunc gp.ProcessFunc) gp.Process {
	return gp.Go(func(proc gp.Process) {
		ticker := time.NewTicker(interval)
		goCallOnTicker(ticker.C, procfunc)(proc)
		ticker.Stop()
	})
}
func TickGo ( interval time . Duration , procfunc gp . ProcessFunc ) gp . Process { return gp . Go ( func ( proc gp . Process ) { ticker := time . NewTicker ( interval ) goCallOnTicker ( ticker . C , procfunc ) ( proc ) ticker . Stop ( ) } ) }
// TickGo constructs a ticker with interval, and calls the given ProcessFunc every
// time the ticker fires.
// This is not rate limited, multiple calls could be in-flight at the same time.
//
//  p := periodicproc.TickGo(time.Second, func(proc goprocess.Process) {
//  	fmt.Println("fire!")
//  	<-time.After(10 * time.Second) // will not block sequential execution
//  })
//
//  <-time.After(3 * time.Second)
//  p.Close()
//
//  // Output:
//  // fire!
//  // fire!
//  // fire!
TickGo constructs a ticker with interval and calls the given ProcessFunc every time the ticker fires . This is not rate limited multiple calls could be in - flight at the same time . p : = periodicproc . TickGo ( time . Second func ( proc goprocess . Process ) { fmt . Println ( fire! ) < - time . After ( 10 * time . Second ) // will not block sequential execution } ) < - time . After ( 3 * time . Second ) p . Close () // Output : // fire! // fire! // fire!