Modules@robinpath/queue

@robinpath/queue

0.1.1Public

In-memory job queue with priorities, delays, and dead-letter for RobinPath

@robinpath/queue

In-memory job queue with priorities, delayed execution, retry, dead-letter, pause/resume

Category Functions Auth License

Why use this module?

The queue module lets you:

  • Create a named job queue
  • Add a job to a queue with optional priority and delay
  • Get the next pending job from a queue (highest priority, oldest first)
  • Mark a job as completed with an optional result
  • Mark a job as failed; auto-retries if under maxAttempts, otherwise moves to dead-letter

All functions are callable directly from RobinPath scripts with a simple, consistent API.

Installation

npm install @robinpath/queue

Quick Start

No credentials needed — start using it right away:

queue.push "emails" $emailData {"priority": 10}

Available Functions

FunctionDescription
queue.createCreate a named job queue
queue.pushAdd a job to a queue with optional priority and delay
queue.popGet the next pending job from a queue (highest priority, oldest first)
queue.completeMark a job as completed with an optional result
queue.failMark a job as failed; auto-retries if under maxAttempts, otherwise moves to dead-letter
queue.retryRe-queue a failed or dead-letter job for processing
queue.removeRemove a job from a queue
queue.sizeGet the number of jobs in a queue, optionally filtered by status
queue.statusGet detailed status and metrics for a queue
queue.pausePause a queue (pop will return null)
queue.resumeResume a paused queue
queue.clearRemove all jobs from a queue
queue.deadLetterList jobs in the dead-letter queue
queue.getJobGet details for a specific job by ID
queue.destroyDestroy a queue and free all resources

Examples

Add a job to a queue with optional priority and delay

queue.push "emails" $emailData {"priority": 10}

Get the next pending job from a queue (highest priority, oldest first)

queue.pop "emails"

Mark a job as completed with an optional result

queue.complete "emails" $jobId "sent"

Integration with RobinPath

import { RobinPath } from "@wiredwp/robinpath";
import Module from "@robinpath/queue";

const rp = new RobinPath();
rp.registerModule(Module.name, Module.functions);
rp.registerModuleMeta(Module.name, Module.functionMetadata);

const result = await rp.executeScript(`
  queue.push "emails" $emailData {"priority": 10}
`);

Full API Reference

See MODULE.md for complete documentation including all parameters, return types, error handling, and advanced examples.

Related Modules

License

MIT

Versions (1)

VersionTagPublished
0.1.1latestyesterday
Install
$ robinpath install @robinpath/queue
Version0.1.1
LicenseMIT
Unpacked Size6.1 KB
Versions1
Weekly Downloads0
Total Downloads0
Stars0
Last Publishyesterday
Createdyesterday

Category

devops