437 Queue Rate Limiting 690fad1d

Rate Limit Queue Execution

tools-only Updated 7 repo stars

File contents

Rate Limit Queue Execution

Set rate limits on a queue to control how many workflows start in a given period. Rate limits are global across all DBOS processes.

Incorrect (no rate limiting):

const queue = new WorkflowQueue("llm_tasks");
// Could send hundreds of requests per second to a rate-limited API

Correct (rate-limited queue):

const queue = new WorkflowQueue("llm_tasks", {
  rateLimit: { limitPerPeriod: 50, periodSec: 30 },
});

This queue starts at most 50 workflows per 30 seconds.

Combining rate limiting with concurrency:

// At most 5 concurrent and 50 per 30 seconds
const queue = new WorkflowQueue("api_tasks", {
  workerConcurrency: 5,
  rateLimit: { limitPerPeriod: 50, periodSec: 30 },
});

Common use cases:

  • LLM API rate limiting (OpenAI, Anthropic, etc.)
  • Third-party API throttling
  • Preventing database overload

Reference: Rate Limiting

tools-only/X-Skills/tree/main/automation/workflow/437-queue-rate-limiting_690fad1d commit 8fe3409672

Frequently asked questions

npx skillmds@latest add tools-only/437-queue-rate-limiting-690fad1d