2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 14:57:16 +08:00
Files
panel/internal/job/job.go
2026-01-08 18:03:23 +08:00

55 lines
1.3 KiB
Go

package job
import (
"log/slog"
"github.com/acepanel/panel/pkg/config"
"github.com/google/wire"
"github.com/robfig/cron/v3"
"gorm.io/gorm"
"github.com/acepanel/panel/internal/biz"
)
var ProviderSet = wire.NewSet(NewJobs)
type Jobs struct {
conf *config.Config
db *gorm.DB
log *slog.Logger
setting biz.SettingRepo
cert biz.CertRepo
certAccount biz.CertAccountRepo
backup biz.BackupRepo
cache biz.CacheRepo
task biz.TaskRepo
}
func NewJobs(conf *config.Config, db *gorm.DB, log *slog.Logger, setting biz.SettingRepo, cert biz.CertRepo, certAccount biz.CertAccountRepo, backup biz.BackupRepo, cache biz.CacheRepo, task biz.TaskRepo) *Jobs {
return &Jobs{
conf: conf,
db: db,
log: log,
setting: setting,
cert: cert,
certAccount: certAccount,
backup: backup,
cache: cache,
task: task,
}
}
func (r *Jobs) Register(c *cron.Cron) error {
if _, err := c.AddJob("* * * * *", NewMonitoring(r.db, r.log, r.setting)); err != nil {
return err
}
if _, err := c.AddJob("0 4 * * *", NewCertRenew(r.conf, r.db, r.log, r.setting, r.cert, r.certAccount)); err != nil {
return err
}
if _, err := c.AddJob("0 2 * * *", NewPanelTask(r.db, r.log, r.backup, r.cache, r.task, r.setting)); err != nil {
return err
}
return nil
}