UNPKG

@mojaloop/central-services-stream

Version:
73 lines (63 loc) 2.16 kB
*Example Consumer* ```JSON const Consumer = require('@mojaloop/central-services-stream').Kafka.Consumer const ConsumerEnums = require('@mojaloop/central-services-stream').Kafka.Consumer.ENUMS const Logger = require('@mojaloop/central-services-logger') const testConsumer = async () => { Logger.info('Instantiate consumer') var c = new Consumer(['test1'], { options: { mode: ConsumerEnums.CONSUMER_MODES.recursive, batchSize: 1, recursiveTimeout: 100, messageCharset: 'utf8', messageAsJSON: true, sync: true, consumeTimeout: 1000 }, rdkafkaConf: { 'group.id': 'kafka-test', 'metadata.broker.list': 'localhost:9092', 'enable.auto.commit': false }, topicConf: {}, logger: Logger }) Logger.debug('Connect consumer') var connectionResult = await c.connect() Logger.debug(`Connected result=${connectionResult}`) Logger.debug('Consume messages') c.consume((error, message) => { return new Promise((resolve, reject) => { if (error) { Logger.debug(`WTDSDSD!!! error ${error}`) // resolve(false) reject(error) } if (message) { // check if there is a valid message coming back Logger.debug(`Message Received by callback function - ${JSON.stringify(message)}`) // lets check if we have received a batch of messages or single. This is dependant on the Consumer Mode if (Array.isArray(message) && message.length != null && message.length > 0) { message.forEach(msg => { c.commitMessage(msg) }) } else { c.commitMessage(message) } resolve(true) } else { resolve(false) } // resolve(true) }) }) // consume 'ready' event c.on('ready', arg => Logger.debug(`onReady: ${JSON.stringify(arg)}`)) // consume 'message' event c.on('message', message => Logger.debug(`onMessage: ${message.offset}, ${JSON.stringify(message.value)}`)) // consume 'batch' event c.on('batch', message => Logger.debug(`onBatch: ${JSON.stringify(message)}`)) Logger.debug('testConsumer::end') } testConsumer() ```