Skip to content

feat(utils): Add shuffle option to CursoredScheduler#116297

Merged
roggenkemper merged 2 commits into
masterfrom
roggenkemper/feat/cursored-scheduler-shuffle
May 27, 2026
Merged

feat(utils): Add shuffle option to CursoredScheduler#116297
roggenkemper merged 2 commits into
masterfrom
roggenkemper/feat/cursored-scheduler-shuffle

Conversation

@roggenkemper
Copy link
Copy Markdown
Member

@roggenkemper roggenkemper commented May 27, 2026

Add a shuffle parameter to CursoredScheduler that randomizes the PK
processing order at cycle start. Defaults to False for backward compatibility.

The CursoredScheduler currently always processes items in ascending PK order.
When items have varying processing yield, this creates a deterministic pattern of peaks and
dips that repeats every cycle. Shuffling distributes high-yield items randomly
across the cycle, smoothing throughput over time.

Add a `shuffle` parameter to CursoredScheduler that randomizes the PK
order at cycle start. This smooths out processing throughput when items
have varying yield, preventing deterministic peaks and dips that repeat
every cycle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label May 27, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@roggenkemper roggenkemper marked this pull request as ready for review May 27, 2026 15:22
@roggenkemper roggenkemper requested a review from a team as a code owner May 27, 2026 15:22
@roggenkemper roggenkemper merged commit 2fd64c2 into master May 27, 2026
62 checks passed
@roggenkemper roggenkemper deleted the roggenkemper/feat/cursored-scheduler-shuffle branch May 27, 2026 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants