plugins/render/skills/render-background-workers/SKILL.md
Sets up and configures background workers on Render for queue-based job processing. Use when the user needs to process async jobs, consume from a queue, run Celery/Sidekiq/BullMQ/Asynq/Oban workers, handle graceful shutdown with SIGTERM, wire a worker to Key Value (Redis), or choose between workers and cron jobs for background work. Trigger terms: background worker, async jobs, queue consumer, Celery, Sidekiq, BullMQ, Asynq, Oban, job processing, SIGTERM, graceful shutdown.
npx skillsauth add openai/plugins render-background-workersInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill explains worker services on Render: processes that consume jobs from a queue instead of serving HTTP. Pair with render-blueprints, render-env-vars, and render-networking when wiring render.yaml and private connectivity.
Per-framework setup and signal-handling detail: references/queue-framework-setup.md, references/graceful-shutdown.md.
| Framework | Language | Queue backend | Notes | |-----------|----------|---------------|--------| | Celery | Python | Redis / Key Value | Most common Python task queue | | Sidekiq | Ruby | Redis / Key Value | Standard for Rails | | BullMQ | Node.js | Redis / Key Value | Modern Node queue (Redis-based) | | Asynq | Go | Redis / Key Value | Go async task processing | | Oban | Elixir | Postgres (not Redis) | Queue stored in the database |
noeviction. allkeys-lru and similar policies are for caches; evicting queue keys drops jobs.REDIS_URL (or your framework’s equivalent) via fromService with type: keyvalue and property: connectionString in the Blueprint.ipAllowList on Key Value—include the CIDRs that should reach the instance (often [] for private-network-only access; see render-blueprints / Key Value field reference).See references/queue-framework-setup.md for minimal app + YAML examples.
| Need | Use | Why | |------|-----|-----| | Always-on queue consumer | Background Worker | Polls continuously; long-lived process | | Periodic scheduled task | Cron Job | Runs on a schedule, exits; 12h max per run | | Distributed parallel compute | Workflow | Each run gets its own instance; fan-out patterns | | High-volume or bursty jobs | Workflow | Scales per run; no idle instance cost between runs |
SIGTERM, then waits up to maxShutdownDelaySeconds (1–300, default 30) before SIGKILL.maxShutdownDelaySeconds to at least your longest safe job duration (see Dashboard or Blueprint).Language- and framework-specific handlers: references/graceful-shutdown.md.
Minimal pattern: type: worker, runtime, buildCommand, startCommand, and envVars wired from Key Value.
services:
- type: keyvalue
name: jobs
plan: starter
region: oregon
ipAllowList: []
- type: worker
name: task-worker
runtime: python
region: oregon
plan: starter
buildCommand: pip install -r requirements.txt
startCommand: celery -A tasks worker --loglevel=info
envVars:
- key: REDIS_URL
fromService:
name: jobs
type: keyvalue
property: connectionString
Optional: maxShutdownDelaySeconds on the worker service for longer draining jobs.
| Topic | File |
|--------|------|
| Celery, Sidekiq, BullMQ, Asynq, Oban setup + YAML | references/queue-framework-setup.md |
| SIGTERM, maxShutdownDelaySeconds, per-language patterns | references/graceful-shutdown.md |
render.yaml schema, fromService, projectsdevelopment
Use when the user wants to spin up / create / launch / provision a DigitalOcean droplet (or "a remote dev box on DO") and connect to it from Codex as a remote SSH workspace.
data-ai
Search through Microsoft Teams chats or channels, triage unread or recent activity, draft follow-ups, and manage Planner tasks through connected Teams data.
tools
Motion / animation context for the `use_figma` MCP tool — animating Figma nodes via manual keyframes, animation styles, easing, and timeline duration. Load alongside figma-use whenever a task involves adding, editing, or inspecting animation on a node.
development
SwiftUI ↔ Figma translation. Use whenever the user mentions Swift, SwiftUI, iOS, iPhone, or iPad — in EITHER direction — translating a Figma design into SwiftUI (design → code), or pushing SwiftUI views / screens / tokens back into a Figma file (code → design). Triggers on phrases like 'implement this Figma design in SwiftUI', 'build this screen in Swift', 'push this SwiftUI view to Figma', 'mirror my Swift code in a Figma file', or whenever a Figma URL appears alongside `.swift` files / an `.xcodeproj`. Routes to a direction-specific reference doc; loads alongside `figma-use` for the code → design path.