Start syncer dynamically.

This commit is contained in:
Gucheng Wang
2022-01-17 20:09:29 +08:00
parent d183b9eca9
commit d9bcce9485
3 changed files with 43 additions and 17 deletions

View File

@ -14,7 +14,11 @@
package object
import "github.com/robfig/cron/v3"
import (
"fmt"
"github.com/robfig/cron/v3"
)
var cronMap map[string]*cron.Cron
@ -38,3 +42,28 @@ func clearCron(name string) {
delete(cronMap, name)
}
}
func addSyncerJob(syncer *Syncer) {
deleteSyncerJob(syncer)
if !syncer.IsEnabled {
return
}
syncer.initAdapter()
syncer.syncUsers()
schedule := fmt.Sprintf("@every %ds", syncer.SyncInterval)
cron := getCronMap(syncer.Name)
_, err := cron.AddFunc(schedule, syncer.syncUsers)
if err != nil {
panic(err)
}
cron.Start()
}
func deleteSyncerJob(syncer *Syncer) {
clearCron(syncer.Name)
}