mirror of
https://github.com/whyour/qinglong.git
synced 2025-11-08 15:06:08 +08:00
Add timeout protection for gRPC worker initialization
Added 30-second timeout to prevent system hang if gRPC worker fails to start. This provides better error handling and prevents indefinite waiting. Co-authored-by: whyour <22700758+whyour@users.noreply.github.com>
This commit is contained in:
parent
15f4bcf363
commit
827453986b
|
|
@ -57,14 +57,21 @@ class Application {
|
|||
const grpcWorker = this.forkWorker('grpc');
|
||||
|
||||
// Wait for gRPC worker to signal it's ready before starting HTTP worker
|
||||
const grpcReadyPromise = new Promise<void>((resolve) => {
|
||||
const grpcReadyPromise = new Promise<void>((resolve, reject) => {
|
||||
const messageHandler = (msg: any) => {
|
||||
if (msg === 'ready') {
|
||||
grpcWorker.removeListener('message', messageHandler);
|
||||
clearTimeout(timeoutId);
|
||||
resolve();
|
||||
}
|
||||
};
|
||||
grpcWorker.on('message', messageHandler);
|
||||
|
||||
// Timeout after 30 seconds
|
||||
const timeoutId = setTimeout(() => {
|
||||
grpcWorker.removeListener('message', messageHandler);
|
||||
reject(new Error('gRPC worker failed to start within 30 seconds'));
|
||||
}, 30000);
|
||||
});
|
||||
|
||||
// Start HTTP worker after gRPC is ready
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user