package pipeline import ( "time" "evobgp/internal/store" ) // SchedulerTickSec matches the scheduler ticker interval (internal/scheduler). const SchedulerTickSec = 30 // ModuleDueForScheduler reports whether a module's refresh interval bucket rolled since the last scheduler tick. func ModuleDueForScheduler(mod *store.Module, now time.Time) bool { if mod == nil || !mod.Enabled || mod.Type == "IP_RANGES" || mod.RefreshIntervalSec <= 0 { return false } win := int64(mod.RefreshIntervalSec) if win < 60 { win = 60 } cur := now.Unix() / win prev := (now.Unix() - SchedulerTickSec) / win return cur != prev }