Scheduling (WDRR)

PULQ assigns priority buckets (e.g. high, medium, low). Each bucket has an integer weight per scheduling epoch and a quantum debited when one task is successfully claimed from that bucket.

At the start of an epoch, every bucket receives weight credits. While choosing work, the scheduler visits claimable buckets in priority order (not weight order): the first bucket with balance >= quantum is attempted. If the repository reports no pending task for that bucket, its balance is zeroed so idle buckets do not block others.

When a task is claimed, that bucket is debited by quantum. When every balance drops below quantum, the epoch completes and all buckets are credited again.

This matches classic Weighted Deficit Round Robin behaviour used in network schedulers.