Added timeout for Kafka producer.

This commit is contained in:
Mike Cao 2025-01-17 19:10:00 -08:00
parent a02a6c76a6
commit 1da81150d5

View file

@ -4,6 +4,9 @@ import { KAFKA, KAFKA_PRODUCER } from 'lib/db';
import * as tls from 'tls'; import * as tls from 'tls';
const log = debug('umami:kafka'); const log = debug('umami:kafka');
const CONNECT_TIMEOUT = 5000;
const SEND_TIMEOUT = 3000;
const ACKS = 1;
let kafka: Kafka; let kafka: Kafka;
let producer: Producer; let producer: Producer;
@ -31,7 +34,7 @@ function getClient() {
const client: Kafka = new Kafka({ const client: Kafka = new Kafka({
clientId: 'umami', clientId: 'umami',
brokers: brokers, brokers: brokers,
connectionTimeout: 3000, connectionTimeout: CONNECT_TIMEOUT,
logLevel: logLevel.ERROR, logLevel: logLevel.ERROR,
...ssl, ...ssl,
}); });
@ -71,7 +74,8 @@ async function sendMessage(
value: JSON.stringify(message), value: JSON.stringify(message),
}, },
], ],
acks: 1, timeout: SEND_TIMEOUT,
acks: ACKS,
}); });
} }
@ -83,7 +87,8 @@ async function sendMessages(topic: string, messages: { [key: string]: string | n
messages: messages.map(a => { messages: messages.map(a => {
return { value: JSON.stringify(a) }; return { value: JSON.stringify(a) };
}), }),
acks: 1, timeout: SEND_TIMEOUT,
acks: ACKS,
}); });
} }