Release stale effect claims and tick every in-flight instance of
definitions in tag, in one pass. A failing instance is counted, not
thrown; instance failures make the call throw only when at least one
candidate ran and every one failed. It also throws before reaching any
instance when tag is not a valid engine tag, when catchUp.afterMs is not
a positive finite number, when catchUp.effectNames is empty, or when
catchUp.budgetedEffect is not in catchUp.effectNames. execution stamps the release rows and log
defaults to the engine's console logger.
Pass catchUp to also drain instances holding an entry no drainer is working
on: one queued before its drain function existed or while the drain was down,
or one whose claim's lease lapsed. A completed instance holding such an entry
is drained too, and never ticked. The engine must hold a handler for each
named effect, and effects.missingHandler: 'skip' so an entry it cannot run
stays pending for whatever hosts it.
definitions are version-less definition names, and an empty list ticks
nothing. Recovery has its own list, so a beat that ticks nothing still
recovers the queues in HeartbeatCatchUpArgs.recoverDefinitions.
Release stale effect claims and tick every in-flight instance of
definitionsintag, in one pass. A failing instance is counted, not thrown; instance failures make the call throw only when at least one candidate ran and every one failed. It also throws before reaching any instance whentagis not a valid engine tag, whencatchUp.afterMsis not a positive finite number, whencatchUp.effectNamesis empty, or whencatchUp.budgetedEffectis not incatchUp.effectNames.executionstamps the release rows andlogdefaults to the engine's console logger.Pass
catchUpto also drain instances holding an entry no drainer is working on: one queued before its drain function existed or while the drain was down, or one whose claim's lease lapsed. A completed instance holding such an entry is drained too, and never ticked. The engine must hold a handler for each named effect, andeffects.missingHandler: 'skip'so an entry it cannot run stays pending for whatever hosts it.definitionsare version-less definition names, and an empty list ticks nothing. Recovery has its own list, so a beat that ticks nothing still recovers the queues in HeartbeatCatchUpArgs.recoverDefinitions.