@@ -46,27 +46,32 @@ const getMasterConfig = (): Knex.Config => ({
4646 : 60000 ,
4747} as any )
4848
49- const getReadReplicaConfig = ( ) : Knex . Config => ( {
49+ const getReadReplicaConfigByIndex = ( index : number ) : Knex . Config => ( {
5050 tag : 'read-replica' ,
5151 client : 'pg' ,
5252 connection : {
53- host : process . env . RR_DB_HOST ,
54- port : Number ( process . env . RR_DB_PORT ) ,
55- user : process . env . RR_DB_USER ,
56- password : process . env . RR_DB_PASSWORD ,
57- database : process . env . RR_DB_NAME ,
53+ host : process . env [ `RR ${ index } _DB_HOST` ] ,
54+ port : Number ( process . env [ `RR ${ index } _DB_PORT` ] ) ,
55+ user : process . env [ `RR ${ index } _DB_USER` ] ,
56+ password : process . env [ `RR ${ index } _DB_PASSWORD` ] ,
57+ database : process . env [ `RR ${ index } _DB_NAME` ] ,
5858 } ,
5959 pool : {
60- min : process . env . RR_DB_MIN_POOL_SIZE ? Number ( process . env . RR_DB_MIN_POOL_SIZE ) : 0 ,
61- max : process . env . RR_DB_MAX_POOL_SIZE ? Number ( process . env . RR_DB_MAX_POOL_SIZE ) : 3 ,
60+ min : process . env [ `RR ${ index } _DB_MIN_POOL_SIZE` ] ? Number ( process . env [ `RR ${ index } _DB_MIN_POOL_SIZE` ] ) : 0 ,
61+ max : process . env [ `RR ${ index } _DB_MAX_POOL_SIZE` ] ? Number ( process . env [ `RR ${ index } _DB_MAX_POOL_SIZE` ] ) : 3 ,
6262 idleTimeoutMillis : 60000 ,
6363 propagateCreateError : false ,
64- acquireTimeoutMillis : process . env . RR_DB_ACQUIRE_CONNECTION_TIMEOUT
65- ? Number ( process . env . RR_DB_ACQUIRE_CONNECTION_TIMEOUT )
64+ acquireTimeoutMillis : process . env [ `RR ${ index } _DB_ACQUIRE_CONNECTION_TIMEOUT` ]
65+ ? Number ( process . env [ `RR ${ index } _DB_ACQUIRE_CONNECTION_TIMEOUT` ] )
6666 : 60000 ,
6767 } ,
6868} as any )
6969
70+ const getReadReplicaConfig = ( ) : Knex . Config => {
71+ const readReplicaIndex = Number ( process . env . WORKER_INDEX ) % Number ( process . env . READ_REPLICAS )
72+ return getReadReplicaConfigByIndex ( readReplicaIndex )
73+ }
74+
7075let writeClient : Knex
7176
7277export const getMasterDbClient = ( ) => {
0 commit comments