Job queues

BullMQ-ready Redis with a scoped ACL for background jobs.

A managed queue is a Redis user tuned for BullMQ: your keys and pub/sub channels are ACL-scoped to a private prefix, and destructive commands (FLUSHALL, CONFIG, KEYS) are denied. Enqueue and process background jobs without running your own Redis.

Provision#

Open Queues → New queue. When it’s Running, Reveal connection for REDIS_URL and QUEUE_PREFIX. Pass the prefix to BullMQ — every key it writes lives under your scoped namespace. Run the worker as a WORKER service on the platform (no HTTP port) or anywhere that can reach the Redis host.

import { Queue, Worker } from 'bullmq';
const connection = { url: process.env.REDIS_URL };
const prefix = process.env.QUEUE_PREFIX; // required — keys are ACL-scoped
const queue = new Queue('jobs', { connection, prefix });
new Worker('jobs', async (job) => { /* handle */ }, { connection, prefix });
await queue.add('task', { hello: 'world' });
Enqueue + process with BullMQ using the returned credentials.

BullMQ requires the key prefix — without it, writes fall outside your ACL scope and are rejected.

Your app runs background jobs on an isolated, BullMQ-ready Redis with revocable credentials.