Registry / database / level-jobs

level-jobs

JSON →
library2.1.1jsnpmunverified

Persistent job queue built on LevelDB for Node.js. Version 2.1.1 uses levelup and sublevel to manage a durable queue with worker functions, automatic retries on failure, configurable concurrency and backoff. Unlike in-memory queues, it survives restarts. Offers a client-only API for pushing jobs without worker logic.

npm install level-jobs
INSTALL
IMPORT
SIG · LEVEL-JOBS
L
level-jobs
databasejavascriptv2.1.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Jobs
const Jobs = require('level-jobs')
CommonJS syntax; no named exports
QueueClient
const QueueClient = require('level-jobs/client')
Client-only API from separate path
levelup
const levelup = require('levelup')
Required to create a database instance

Initializes a level-jobs queue with LevelDB, defines a worker, pushes a job, and listens to queue events.

const levelup = require('levelup'); const sublevel = require('sublevel'); const Jobs = require('level-jobs'); const db = sublevel(levelup('./mydb')); function worker(id, payload, cb) { console.log('Processing job', id, payload); cb(null); } const queue = Jobs(db, worker, { maxConcurrency: 2 }); const jobId = queue.push({ task: 'email' }, (err) => { if (err) console.error('Push failed', err); else console.log('Job queued', jobId); }); queue.on('drain', () => console.log('Queue empty')); queue.on('error', (err) => console.error('Queue error', err)); queue.on('retry', (id, err) => console.log('Retrying job', id, err));
Debug
Known issues
gotchaDatabase must not be used for other purposes after being passed to level-jobs
fix
Maintain a separate database or sublevel instance for non-queue data.
affects: >=1.0.0
deprecatedsublevel is no longer actively maintained; consider alternative LevelDB queue libraries
fix
Use level-party or level-mem for testing, or migrate to a more modern queue stack.
affects: >=2.0.0
gotchaqueue.del() only works on pending jobs, not running ones
fix
Check job state before attempting deletion, or wait for job to complete.
affects: >=1.0.0
Errors
Common errors & fixes
Error: Cannot find module 'sublevel'
sublevel not installed despite being an implicit dependency
fix
npm install sublevel --save
TypeError: this.pendingCount is undefined
Queue not properly initialized with a database that has open handles
fix
Ensure db.open() has completed before creating the queue.
RangeError: Maximum call stack size exceeded
Worker function calling cb(err) repeatedly causing infinite retry loop with maxRetries set too high
fix
Set a sensible maxRetries limit (e.g., 10).
Upgrade
Version history
2.1.1latest on npm
Audit
Dependencies
leveluprequiredRequired for LevelDB database interface
sublevelrequiredUsed internally to namespace job data within LevelDB
Agent activity
4 hits · last 30 days
node
2
Resources
level-jobs — npm install level-jobs · libregistry