consumerGroup(type = 'web', fn) { assert(type, '[egg-kafka] consumers type argument must be required'); const kafkaConfig = this.app.config.kafka; const kafkaHost = kafkaConfig.client.kafkaHost; const consumerOption = kafkaConfig.consumerGroup[type] || {}; const topic = consumerOption.topic; consumerOption.kafkaHost = kafkaHost; const ConsumerGroup = kafka.ConsumerGroup; const _consumer = new ConsumerGroup(consumerOption, topic); _consumer.on('error', err => { this.app.coreLogger.error(`[egg-kafka] consumer have error ${err}`); }); _consumer.on('message', message => { fn && fn(message); }); }
// Retry after 5 minute consumerGroup.on('message', async (record) => { console.log(record); const message = JSON.parse(record.value); const diffTime = differenceInMilliseconds(Date.now(), message.timestamp); if (diffTime < config.retryInterval) await sleep(config.retryInterval - diffTime); addSubscriberToCampaign(JSON.stringify(message), config.providerFailedTopic); });
consumerGroup.on('message', (record) => { sendToIntegration(record.value, config.providerRetryTopic); });
consumerGroup.on('error', (err) => { console.error(`${config.providerTopic}-consumer error ---------->`, err); });
consumerGroup.on('message', (message) => { console.log(message); });
consumerGroup.on('error', (err) => { console.error(`${config.providerRetryTopic}-consumer error ---------->`, err); });
consumerGroup.on('error', (err) => { console.error(`${config.providerFailedTopic}-consumer error ---------->`, err); });
consumerGroup(type = 'web', fn) { assert(type, '[egg-kafka] consumers type argument must be required'); const kafkaConfig = this.app.config.kafka; const kafkaHost = kafkaConfig.client.kafkaHost; const consumerOption = kafkaConfig.consumerGroup[type] || {}; const topic = consumerOption.topic; consumerOption.kafkaHost = kafkaHost; const ConsumerGroup = kafka.ConsumerGroup; const _consumer = new ConsumerGroup(consumerOption, topic); _consumer.on('error', err => { this.app.coreLogger.error(`[egg-kafka] consumer have error ${err}`); }); _consumer.on('message', message => { fn && fn(message); }); }