{"id":48809,"library":"nxus-worker-queue","title":"nxus-worker-queue","description":"Worker queue module for Nxus applications using Redis and Bull for pub/sub background tasks. Version 4.0.6 is current. Uses Bull for robust, Redis-backed job queues with features like delayed jobs, retries, and job completion notifications via promises. Differentiator: integrates tightly with Nxus framework but can be used standalone. Release cadence is irregular; last release was 2020.","status":"maintenance","version":"4.0.6","language":"javascript","source_language":"en","source_url":"https://github.com/nxus/worker-queue","tags":["javascript"],"install":[{"cmd":"npm install nxus-worker-queue","lang":"bash","label":"npm"},{"cmd":"yarn add nxus-worker-queue","lang":"bash","label":"yarn"},{"cmd":"pnpm add nxus-worker-queue","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Redis-backed job queue library","package":"bull","optional":false},{"reason":"Redis client required by Bull","package":"redis","optional":false}],"imports":[{"note":"Must use named import; default import is not exported.","wrong":"import workerQueue from 'nxus-worker-queue'","symbol":"workerQueue","correct":"import { workerQueue } from 'nxus-worker-queue'"},{"note":"Constructor is a named export; ESM-only.","wrong":"import WorkerQueue from 'nxus-worker-queue'","symbol":"WorkerQueue","correct":"import { WorkerQueue } from 'nxus-worker-queue'"},{"note":"CommonJS require destructuring needed; library is ESM-first but provides CJS compatibility.","wrong":"const workerQueue = require('nxus-worker-queue')","symbol":"workerQueue","correct":"const { workerQueue } = require('nxus-worker-queue')"}],"quickstart":{"code":"import { workerQueue } from 'nxus-worker-queue'\n\n// Register a worker handler\nworkerQueue.worker('sendEmail', async (job) => {\n  console.log('Processing job:', job.id, 'with data:', job.data)\n  // Simulate work\n  await new Promise(resolve => setTimeout(resolve, 1000))\n  return { status: 'sent' }\n})\n\n// Queue a task\nasync function queueEmail(recipient) {\n  const job = await workerQueue.task('sendEmail', { to: recipient, subject: 'Hello' })\n  console.log('Job queued:', job.id)\n  \n  // Wait for completion (optional)\n  const result = await job.finished()\n  console.log('Job result:', result)\n}\n\nqueueEmail('user@example.com').catch(console.error)","lang":"typescript","description":"Shows registering a worker handler for 'sendEmail' tasks, queueing a task with data, and awaiting job completion via job.finished()."},"warnings":[{"fix":"If upgrading from 3.x, ensure Bull is upgraded to v3. Job opts may differ.","message":"Version 4.x requires Bull v3+. Older Bull 2.x API is incompatible.","severity":"breaking","affected_versions":">=4.0"},{"fix":"Always return a promise from worker handler, even if async.","message":"worker() expects handler to return a promise; non-promise returns may cause unexpected behavior.","severity":"gotcha","affected_versions":"*"},{"fix":"Use job.finished() after workerQueue.task() to await result.","message":"task() returns a Bull Job, not a promise. Must call .finished() to get completion promise.","severity":"gotcha","affected_versions":"*"},{"fix":"Pass options to Bull queue directly, not via worker() third arg.","message":"The 'opts' parameter in worker() is deprecated; use Bull Queue options instead.","severity":"deprecated","affected_versions":">=4.0"},{"fix":"Set worker_queue.redis_url in config or export REDIS_URL environment variable.","message":"Redis URL must be set via config or process.env.REDIS_URL; default is localhost:6379.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"search_vec":"'2020':62 '4.0.6':20 'applic':10 'back':29 'background':17 'bull':14,24 'cadenc':56 'complet':40 'current':22 'delay':35 'differenti':44 'featur':33 'framework':49 'integr':45 'irregular':58 'javascript':63 'job':30,36,39 'last':59 'like':34 'modul':7 'notif':41 'nxus':2,9,48 'nxus-worker-queu':1 'promis':43 'pub/sub':16 'queue':4,6,31 'redi':12,28 'redis-back':27 'releas':55,60 'retri':37 'robust':26 'standalon':54 'task':18 'tight':46 'use':11,23,53 'version':19 'via':42 'worker':3,5","created_at":"2026-06-07T16:58:34.634107+00:00","updated_at":"2026-06-07T16:58:34.634107+00:00","problems":[{"fix":"npm install bull --save","cause":"Missing peer dependency bull","error":"Error: Cannot find module 'bull'"},{"fix":"Use import { workerQueue } from 'nxus-worker-queue'","cause":"Using default import instead of named import","error":"TypeError: workerQueue.worker is not a function"},{"fix":"Start redis-server or set REDIS_URL env variable","cause":"Redis server not running or wrong host/port","error":"Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED"},{"fix":"const job = await workerQueue.task('name', data); await job.finished();","cause":"Calling .finished() on queue, not on job returned by task()","error":"TypeError: job.finished is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/nxus/worker-queue/","github":"https://github.com/nxus/worker-queue","docs":null,"changelog":null,"pypi":null,"npm":"nxus-worker-queue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}