Registry / devops / duty
library2.5.1jsnpmunverified

Duty is a simple job queue for Node.js that runs in-memory by default, requiring no external database for basic use. Version 2.5.1 is the latest stable; releases are infrequent. Key differentiators: dumb-simple API, database-agnostic via dbstream, supports progress events, timeouts, retries with backoff, and concurrency control. Lighter than Kue or Bull, no Redis needed for simple cases.

npm install duty
INSTALL
IMPORT
SIG · DUTY
D
duty
devopsjavascriptv2.5.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.

default
import duty from 'duty'
const duty = require('duty');
ESM import works if using Node >= 12 with 'type':'module' or .mjs. CommonJS require is still the primary usage in the docs.
duty
const duty = require('duty');
import { duty } from 'duty';
The default export is the duty function; named exports do not exist.
register
duty.register('job', fn);
import { register } from 'duty';
register is a method on the duty object, not a separate export.

Creates a job handler for counting lines in a file and adds a job to the queue.

const duty = require('duty'); // Register a job handler duty.register('count-lines', function (data, done) { const fs = require('fs'); const readable = fs.createReadStream(data.filename); let newlines = 0; readable.on('data', (chunk) => { newlines += chunk.toString().split('\n').length - 1; }); readable.on('end', () => done(null, { newlines })); readable.on('error', done); }); // Add a job to the queue const job = { filename: __filename }; duty('count-lines', job, (err, jobInfo) => { if (err) console.error(err); else console.log('Job done:', jobInfo); });
Debug
Known issues
gotchaDefault in-memory storage lost on process restart; use external dbstream for persistence.
fix
Configure a persistent backend: duty.db(require('dbstream-mongo').connect('...'))
affects: *
deprecatedPackage uses older callback patterns; no Promises or async/await support.
fix
Use a modern queue like Bull or Kue if promise-based workflows are needed.
affects: >=2.0.0
Errors
Common errors & fixes
Error [ERR_REQUIRE_ESM]: require() of ES Module
Duty is CJS-only; using ESM imports may cause issues if package.json type is 'module'.
fix
Use require('duty') or import with createRequire.
TypeError: duty.register is not a function
duty is not imported correctly, or duty() was called without new? Likely wrong import.
fix
Ensure you require('duty') and use duty.register (it is a function).
Upgrade
Version history
2.5.1latest on npm
Audit
Dependencies
dbstream-memoryrequiredDefault in-memory persistence for job data.
Agent activity
7 hits · last 30 days
node
6
Resources
packageduty
duty — npm install duty · libregistry