258
}
259
261
>
pm.config.NewMatcherSub, changeKey, unloadOnBaseConfigChange, pm.engine.timeSource)
262
>
fairness, pm.cancelFairnessSub = dynamicconfig.SubscribeGradualChange(
263
>
pm.config.EnableFairnessSub, changeKey, unloadOnBaseConfigChange, pm.engine.timeSource)
264
>
265
>
// Determine initial config values
266
>
pm.config.NewMatcher, pm.config.EnableFairness = pm.computeEffectiveConfig(autoEnable, fairness, newMatcher)
267
>
268
>
defaultQ, err := newPhysicalTaskQueueManager(pm, UnversionedQueueKey(pm.partition))
269
>
if err != nil {
270
return err
271
}
273
>
defaultQ.Start()
274
>
pm.goroGroup.Go(pm.updateEphemeralData)
275
>
pm.goroGroup.Go(pm.emitLogicalBacklogMetrics)
276
>
277
>
// Whenever a root partition is loaded, we need to force all child partitions to load.
278
>
// If there is a backlog of tasks on any child partitions, force loading will ensure
279
>
// that they can forward their tasks the poller which caused the root partition to be
280
>
// loaded. We're in a separate goroutine in initialize() so we can do it here.
281
>
if defaultQ.WaitUntilInitialized(pm.initCtx) == nil {
282
>
pm.ForceLoadAllChildPartitions()
283
>
}
284
286
}
287