1
+ import { v4 as uuidv4 } from 'uuid' ;
1
2
import { Injectable , Logger , OnModuleInit } from '@nestjs/common' ;
2
3
import { getAvailableEndpoints } from 'src/modules/autodiscovery/utils/autodiscovery.util' ;
3
4
import { convertRedisInfoReplyToObject } from 'src/utils' ;
@@ -51,7 +52,7 @@ export class AutodiscoveryService implements OnModuleInit {
51
52
return ;
52
53
}
53
54
54
- await this . discoverDatabases ( ) ;
55
+ await this . discoverDatabases ( sessionMetadata ) ;
55
56
} catch ( e ) {
56
57
this . logger . warn ( 'Unable to discover redis database' , e ) ;
57
58
}
@@ -62,12 +63,12 @@ export class AutodiscoveryService implements OnModuleInit {
62
63
* Database alias will be "host:port"
63
64
* @private
64
65
*/
65
- private async discoverDatabases ( ) {
66
+ private async discoverDatabases ( sessionMetadata : SessionMetadata ) {
66
67
const endpoints = await getAvailableEndpoints ( ) ;
67
68
68
69
// Add redis databases or resolve after 1s to not block app startup for a long time
69
70
await Promise . race ( [
70
- Promise . all ( endpoints . map ( this . addRedisDatabase . bind ( this ) ) ) ,
71
+ Promise . all ( endpoints . map ( ( endpoint ) => this . addRedisDatabase ( sessionMetadata , endpoint ) ) ) ,
71
72
new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) ) ,
72
73
] ) ;
73
74
}
@@ -82,7 +83,9 @@ export class AutodiscoveryService implements OnModuleInit {
82
83
try {
83
84
const client = await this . redisClientFactory . createClient (
84
85
{
86
+ databaseId : uuidv4 ( ) ,
85
87
context : ClientContext . Common ,
88
+ sessionMetadata,
86
89
} as ClientMetadata ,
87
90
plainToClass ( Database , endpoint ) ,
88
91
{ useRetry : false , connectionName : 'redisinsight-auto-discovery' } ,
0 commit comments