@@ -54,7 +54,11 @@ import {
54
54
ApplicationOfferingChangeRequest ,
55
55
} from "./entities" ;
56
56
import { ClusterNode , ClusterOptions , RedisOptions } from "ioredis" ;
57
- import { ORM_CACHE_LIFETIME } from "@sims/utilities" ;
57
+ import {
58
+ ORM_CACHE_LIFETIME ,
59
+ ORM_CACHE_REDIS_COMMAND_TIMEOUT ,
60
+ ORM_CACHE_REDIS_RETRY_INTERVAL ,
61
+ } from "@sims/utilities" ;
58
62
import { ConfigService } from "@sims/utilities/config" ;
59
63
60
64
interface ORMCacheConfig {
@@ -93,14 +97,22 @@ function getORMCacheConfig(): ORMCacheConfig | false {
93
97
return false ;
94
98
}
95
99
100
+ const retryStrategy = ( times : number ) => {
101
+ const delay = Math . min ( times * 100 , ORM_CACHE_REDIS_RETRY_INTERVAL ) ;
102
+ return delay ;
103
+ } ;
104
+
96
105
if ( config . redis . redisStandaloneMode ) {
97
106
return {
98
107
type : "ioredis" ,
99
108
options : {
100
109
host : config . redis . redisHost ,
101
110
port : config . redis . redisPort ,
102
111
password : config . redis . redisPassword ,
112
+ commandTimeout : ORM_CACHE_REDIS_COMMAND_TIMEOUT ,
113
+ retryStrategy,
103
114
} ,
115
+ ignoreErrors : true ,
104
116
duration : ORM_CACHE_LIFETIME ,
105
117
} ;
106
118
}
@@ -113,9 +125,12 @@ function getORMCacheConfig(): ORMCacheConfig | false {
113
125
options : {
114
126
redisOptions : {
115
127
password : config . redis . redisPassword ,
128
+ commandTimeout : ORM_CACHE_REDIS_COMMAND_TIMEOUT ,
116
129
} ,
130
+ clusterRetryStrategy : retryStrategy ,
117
131
} ,
118
132
} ,
133
+ ignoreErrors : true ,
119
134
duration : ORM_CACHE_LIFETIME ,
120
135
} ;
121
136
}
0 commit comments