{"id":45988,"library":"queue-schedule","title":"queue-schedule","description":"Queue producer and consumer tools with Kafka support, including both node-rdkafka and kafkajs adapters. Version 3.0.6 (latest) is stable with TypeScript types included. Designed to address Kafka's lack of slow-consumption support by providing a scheduling layer for delayed/controlled task processing. Key differentiators: dual adapter support (node-rdkafka/kafkajs), built-in delay and pause mechanisms, event-based error handling. Release cadence appears low (last update not recent). Not actively maintained (last commit 2021). Alternative to manual Kafka consumer management with simpler API.","status":"maintenance","version":"3.0.6","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/yunnysunny/queue-schedule","tags":["javascript","queue","producer","consumer","typescript"],"install":[{"cmd":"npm install queue-schedule","lang":"bash","label":"npm"},{"cmd":"yarn add queue-schedule","lang":"bash","label":"yarn"},{"cmd":"pnpm add queue-schedule","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for RdKafkaProducer and RdKafkaConsumer usage","package":"node-rdkafka","optional":true},{"reason":"Required for KafkaJsProducer and KafkaJsConsumer usage","package":"kafkajs","optional":true}],"imports":[{"note":"Package uses CommonJS; no default export. Named import via destructuring.","wrong":"import { RdKafkaProducer } from 'queue-schedule'; // CJS module does not support named ESM imports","symbol":"RdKafkaProducer","correct":"const { RdKafkaProducer } = require('queue-schedule');"},{"note":"RdKafkaConsumer is an EventEmitter subclass; listen to its events.","wrong":"const RdKafkaConsumer = require('queue-schedule').RdKafkaConsumer; // works but verbose","symbol":"RdKafkaConsumer","correct":"const { RdKafkaConsumer } = require('queue-schedule');"},{"note":"Exported from main entry; no subpath imports.","wrong":"const { KafkaJsProducer } = require('queue-schedule/kafkajs'); // wrong path","symbol":"KafkaJsProducer","correct":"const { KafkaJsProducer } = require('queue-schedule');"},{"note":"Part of queue-schedule, not kafkajs itself.","wrong":"const { KafkaJsConsumer } = require('kafkajs'); // wrong package","symbol":"KafkaJsConsumer","correct":"const { KafkaJsConsumer } = require('queue-schedule');"}],"quickstart":{"code":"const { Kafka } = require('kafkajs');\nconst { KafkaJsProducer, KafkaJsConsumer } = require('queue-schedule');\n\nconst client = new Kafka({\n  brokers: [process.env.KAFKA_BROKER ?? 'localhost:9092'],\n});\n\nconst producer = new KafkaJsProducer({\n  topic: 'test-topic',\n  client,\n});\n\nproducer.addData({ hello: 'world' }, {}, (err) => {\n  if (err) console.error('producer error', err);\n  else console.log('data sent');\n});\n\nconst consumer = new KafkaJsConsumer({\n  name: 'my-consumer',\n  client,\n  topic: 'test-topic',\n  consumerOption: { groupId: 'my-group', fromBeginning: true },\n  doTask: (messages, callback) => {\n    console.log('received', messages.length, 'messages');\n    callback();\n  },\n  readCount: 1,\n  pauseTime: 500,\n});","lang":"javascript","description":"Demonstrates creating a KafkaJs producer and consumer with queue-schedule, sending a message and processing it."},"warnings":[{"fix":"Migrate to node-rdkafka or kafkajs adapters.","message":"Version 3.0.0 removed support for kafka-node; use node-rdkafka or kafkajs.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Evaluate alternatives if needing long-term support.","message":"The package is in maintenance mode; no active development since 2021.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Always reference via static property: RdKafkaConsumer.EVENT_CONSUMER_ERROR","message":"Event names like 'EVENT_CONSUMER_ERROR' are string constants; typos cause silent failures.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Always invoke callback() after processing messages.","message":"doTask callback must be called; otherwise consumer stalls.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Refer to KafkaJS documentation for valid options.","message":"consumerOption properties must match KafkaJS consumer config exactly; no validation.","severity":"gotcha","affected_versions":">=3.0.0"}],"env_vars":null,"search_vec":"'/kafkajs':57 '2021':83 '3.0.6':21 'activ':79 'adapt':19,52 'address':31 'altern':84 'api':92 'appear':72 'base':67 'built':59 'built-in':58 'cadenc':71 'commit':82 'consum':7,88,96 'consumpt':38 'delay':61 'delayed/controlled':46 'design':29 'differenti':50 'dual':51 'error':68 'event':66 'event-bas':65 'handl':69 'includ':12,28 'javascript':93 'kafka':10,32,87 'kafkaj':18 'key':49 'lack':34 'last':74,81 'latest':22 'layer':44 'low':73 'maintain':80 'manag':89 'manual':86 'mechan':64 'node':15,55 'node-rdkafka':14,54 'paus':63 'process':48 'produc':5,95 'provid':41 'queue':2,4,94 'queue-schedul':1 'rdkafka':16,56 'recent':77 'releas':70 'schedul':3,43 'simpler':91 'slow':37 'slow-consumpt':36 'stabl':24 'support':11,39,53 'task':47 'tool':8 'type':27 'typescript':26,97 'updat':75 'version':20","created_at":"2026-06-07T12:57:43.191874+00:00","updated_at":"2026-06-07T12:57:43.191874+00:00","problems":[{"fix":"npm install node-rdkafka and ensure version compatibility.","cause":"node-rdkafka not installed or incorrect import","error":"TypeError: Cannot read properties of undefined (reading 'HighLevelProducer')"},{"fix":"npm install queue-schedule","cause":"Package not installed","error":"Error: Cannot find module 'queue-schedule'"},{"fix":"Use const { KafkaJsProducer } = require('queue-schedule');","cause":"Using wrong import (e.g., default import instead of named)","error":"TypeError: producer.addData 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/yunnysunny/queue-schedule#readme","github":"ssh://git@github.com/yunnysunny/queue-schedule","docs":null,"changelog":null,"pypi":null,"npm":"queue-schedule","openapi_spec":null,"status_page":null,"smithery":null,"categories":["messaging"],"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}}