@@ -4,14 +4,13 @@ import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"realdnydns/pkg/config"
|
||||
"realdnydns/pkg/dnsProvider"
|
||||
"realdnydns/pkg/externalIpProvider"
|
||||
"realdnydns/pkg/notificationProvider"
|
||||
|
||||
"github.com/go-co-op/gocron"
|
||||
gocron "github.com/go-co-op/gocron/v2"
|
||||
)
|
||||
|
||||
type ChangeDetector struct {
|
||||
@@ -38,19 +37,26 @@ func New(
|
||||
}
|
||||
}
|
||||
|
||||
func (c *ChangeDetector) RunWithSchedule(checkInterval string) (*gocron.Scheduler, *gocron.Job, error) {
|
||||
s := gocron.NewScheduler(time.UTC)
|
||||
s.SingletonMode()
|
||||
s.CronWithSeconds(checkInterval)
|
||||
func (c *ChangeDetector) RunWithSchedule(checkInterval string) (gocron.Scheduler, gocron.Job, error) {
|
||||
s, err := gocron.NewScheduler()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
job, err := s.DoWithJobDetails(func(job gocron.Job) {
|
||||
numberChanged, err := c.detectAndApplyChanges()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Printf("Number of changes: %d\n", numberChanged)
|
||||
fmt.Println("Next run:", job.NextRun())
|
||||
})
|
||||
job, err := s.NewJob(
|
||||
gocron.CronJob(checkInterval, true),
|
||||
gocron.NewTask(func(job gocron.Job) {
|
||||
numberChanged, err := c.detectAndApplyChanges()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Printf("Number of changes: %d\n", numberChanged)
|
||||
nextRun, err := job.NextRun()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Println("Next run:", nextRun)
|
||||
}))
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user