func main() { kingpin.Parse() // This is a scheduled set of tasks which will unmount old directories which // are not being used by container instances. gocron.Every(15).Seconds().Do(Cleanup, *cliRoot) go gocron.Start() // Discovery the region which this instance resides. This will ensure the // EFS Filesystem gets created in the same region as this instance. metadata := ec2metadata.New(&ec2metadata.Config{}) region, err := metadata.Region() if err != nil { panic(err) } // We need to determine which region this host lives in. That will allow us to spin // up EFS Filesystem within this region. e := ec2.New(&aws.Config{Region: aws.String(region)}) i, err := metadata.GetMetadata("instance-id") if err != nil { panic(err) } subnet, err := GetSubnet(e, i) if err != nil { panic(err) } d := DriverEFS{ Root: *cliRoot, Region: region, Subnet: subnet, } h := dkvolume.NewHandler(d) log.Printf("Listening: %s", socketAddress) log.Println(h.ServeUnix("root", socketAddress)) }
func main() { // Do jobs with params gocron.Every(1).Second().Do(taskWithParams, 1, "hello") // Do jobs without params gocron.Every(1).Second().Do(task) gocron.Every(2).Seconds().Do(task) gocron.Every(1).Minute().Do(task) gocron.Every(2).Minutes().Do(task) gocron.Every(1).Hour().Do(task) gocron.Every(2).Hours().Do(task) gocron.Every(1).Day().Do(task) gocron.Every(2).Days().Do(task) // Do jobs on specific weekday gocron.Every(1).Monday().Do(task) gocron.Every(1).Thursday().Do(task) // function At() take a string like 'hour:min' gocron.Every(1).Day().At("10:30").Do(task) gocron.Every(1).Monday().At("18:30").Do(task) // remove, clear and next_run _, time := gocron.NextRun() fmt.Println(time) // gocron.Remove(task) // gocron.Clear() // function Start start all the pending jobs <-gocron.Start() // also , you can create a your new scheduler, // to run two scheduler concurrently s := gocron.NewScheduler() s.Every(3).Seconds().Do(task) <-s.Start() }