diff --git a/schedulers/MaxGreedyMins.go b/schedulers/MaxGreedyMins.go index 3a1ef12..b7c03c6 100644 --- a/schedulers/MaxGreedyMins.go +++ b/schedulers/MaxGreedyMins.go @@ -171,6 +171,10 @@ func (s *MaxGreedyMins) ConsumeOffers(spc SchedPolicyContext, driver sched.Sched // Switch scheduling policy only if feature enabled from CLI if baseSchedRef.schedPolSwitchEnabled { + // Need to recompute the schedWindow for the next offer cycle. + // The next scheduling policy will schedule at max schedWindow number of tasks. + baseSchedRef.curSchedWindow = baseSchedRef.schedWindowResStrategy.Apply( + func() interface{} { return baseSchedRef.tasks }) // Switching to a random scheduling policy. // TODO: Switch based on some criteria. index := rand.Intn(len(SchedPolicies)) diff --git a/schedulers/MaxMin.go b/schedulers/MaxMin.go index 6cb59b8..90d533d 100644 --- a/schedulers/MaxMin.go +++ b/schedulers/MaxMin.go @@ -165,6 +165,10 @@ func (s *MaxMin) ConsumeOffers(spc SchedPolicyContext, driver sched.SchedulerDri // Switch scheduling policy only if feature enabled from CLI if baseSchedRef.schedPolSwitchEnabled { + // Need to recompute the schedWindow for the next offer cycle. + // The next scheduling policy will schedule at max schedWindow number of tasks. + baseSchedRef.curSchedWindow = baseSchedRef.schedWindowResStrategy.Apply( + func() interface{} { return baseSchedRef.tasks }) // Switching to a random scheduling policy. // TODO: Switch based on some criteria. index := rand.Intn(len(SchedPolicies)) diff --git a/schedulers/bin-packing.go b/schedulers/bin-packing.go index c39c8b3..02e0067 100644 --- a/schedulers/bin-packing.go +++ b/schedulers/bin-packing.go @@ -115,6 +115,10 @@ func (s *BinPackSortedWatts) ConsumeOffers(spc SchedPolicyContext, driver sched. // Switch scheduling policy only if feature enabled from CLI if baseSchedRef.schedPolSwitchEnabled { + // Need to recompute the schedWindow for the next offer cycle. + // The next scheduling policy will schedule at max schedWindow number of tasks. + baseSchedRef.curSchedWindow = baseSchedRef.schedWindowResStrategy.Apply( + func() interface{} { return baseSchedRef.tasks }) // Switching to a random scheduling policy. // TODO: Switch based on some criteria. index := rand.Intn(len(SchedPolicies)) diff --git a/schedulers/first-fit.go b/schedulers/first-fit.go index 4e9713c..3c21a39 100644 --- a/schedulers/first-fit.go +++ b/schedulers/first-fit.go @@ -101,6 +101,10 @@ func (s *FirstFit) ConsumeOffers(spc SchedPolicyContext, driver sched.SchedulerD // Switch scheduling policy only if feature enabled from CLI if baseSchedRef.schedPolSwitchEnabled { + // Need to recompute the schedWindow for the next offer cycle. + // The next scheduling policy will schedule at max schedWindow number of tasks. + baseSchedRef.curSchedWindow = baseSchedRef.schedWindowResStrategy.Apply( + func() interface{} { return baseSchedRef.tasks }) // Switching to a random scheduling policy. // TODO: Switch based on some criteria. index := rand.Intn(len(SchedPolicies))