I want to execute function using this crontab library https://github.com/robfig/cron
every day at 12:05PM. This is my current code :
cronHandler.AddFunc("@midnight", func() {
fmt.Println("crontab ping")
}
How i can execute my function using crontab every day at 03:00AM, time zone +2 ? My problem is current function use timezone of my server, and second problem this library not allow to specific specific hour when execute. How i can do this ?
This can be done with the cron library along with a few minor adjustments to your code.
A few things:
time.LoadLocation
or utilize the time.FixedZone
method if the .LoadLocation
method does not work for you, see the time docs for more info on the methods availableNewWithLocation
, see docs here.AddFunc
method in order to add a more granular cron schedule, replacing the generic @midnight
with a more specific 0 5 * * * *
representing every day @ 12:05AM or replace with whatever your desired cron execution time is at the new, custom locationFull example below:
// pass in your specific zone name, using USA/LA as example
customLocation := time.LoadLocation("America/Los_Angeles")
// initialize new cron job runner with custom location
cronHandler := cron.NewWithLocation(customLocation)
// the 0/24th hour and 5th minute of every day
cronHandler.AddFunc("0 5 * * * *", func() {
fmt.Println("crontab ping")
})