Initial commit
This commit is contained in:
45
cron.go
Normal file
45
cron.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/go-co-op/gocron/v2"
|
||||
)
|
||||
|
||||
// myCron contains cron handler.
|
||||
var myCron gocron.Scheduler
|
||||
|
||||
// RunCron parses config part, related to cron tasks and kicks cron to run.
|
||||
func RunCron() {
|
||||
var err error
|
||||
|
||||
myCron, err = gocron.NewScheduler()
|
||||
|
||||
if err != nil {
|
||||
log.Printf("Unable to create built-in cron: %s", err)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
for _, job := range Conf.Cron.Tasks {
|
||||
_, err := myCron.NewJob(
|
||||
gocron.CronJob(job.Time, false),
|
||||
gocron.NewTask(
|
||||
// Сука, просто заспавнить бинарь, ну почему это надо делать через жопу-то?
|
||||
any(
|
||||
func() bool {
|
||||
RunChan <- job.Cmd
|
||||
|
||||
return true
|
||||
},
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
log.Printf("Unable to add cron job: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
myCron.Start()
|
||||
}
|
||||
Reference in New Issue
Block a user