2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 04:22:33 +08:00
Files
panel/internal/bootstrap/cron.go
2026-01-04 04:47:56 +08:00

29 lines
674 B
Go

package bootstrap
import (
"log/slog"
"github.com/robfig/cron/v3"
"github.com/acepanel/panel/internal/job"
"github.com/acepanel/panel/pkg/config"
pkgcron "github.com/acepanel/panel/pkg/cron"
)
func NewCron(conf *config.Config, log *slog.Logger, jobs *job.Jobs) (*cron.Cron, error) {
logger := pkgcron.NewLogger(log, conf.App.Debug)
c := cron.New(
cron.WithParser(cron.NewParser(
cron.SecondOptional|cron.Minute|cron.Hour|cron.Dom|cron.Month|cron.Dow|cron.Descriptor,
)),
cron.WithLogger(logger),
cron.WithChain(cron.Recover(logger), cron.SkipIfStillRunning(logger)),
)
if err := jobs.Register(c); err != nil {
return nil, err
}
return c, nil
}