У меня проблема с двумя контейнерами:
Я хочу, чтобы мой API автоматически переподключался к контейнеру Mongo
Когда мой API работает и Mongo выключен, я хочу, чтобы моя повторная попытка API, но ни одна из опций mongoose не работала, ни одно из событий повторной попытки повторного подключения не работает
Мой API отправляет мне ошибку "Ошибка: getaddrinfo ENOTFOUND mongo", (mongo - это имя моего образа, так что это логика, потому что docker не может разрешить с его собственным DNS, потому что mongo не запущен)
Я не могу получить событие повтора соединения create mongoose.
Некоторый код:
Прослушиватель событий соединения
mongoose.connection.on('connecting', () => {
statusConnection = 'connecting'
logger.info({
message: 'Database status',
statusConnection: 'Connecting'
})
})
mongoose.connection.on('connected', () => {
statusConnection = 'connected'
logger.info({
message: 'Database status',
statusConnection: 'connected'
})
})
mongoose.connection.on('disconnected', () => {
statusConnection = 'disconnected'
logger.warn({
message: 'Database status',
statusConnection: 'disconnected'
})
})
mongoose.connection.on('reconnected', () => {
statusConnection = 'reconnected'
logger.warn({
message: 'Database status',
statusConnection: 'reconnected'
})
})
mongoose.connection.on('reconnect', () => {
statusConnection = 'reconnect'
logger.warn({
message: 'Database status',
statusConnection: 'reconnect'
})
})
mongoose.connection.on('reconnectFailed', () => {
console.log('-----> reconnectFailed')
statusConnection = 'reconnectFailed'
logger.warn({
message: 'Database status',
statusConnection: 'reconnectFailed'
})
})
mongoose.connection.on('reconnectTries', () => {
console.log('-----> reconnectTries')
statusConnection = 'reconnectTries'
logger.warn({
message: 'Database status',
statusConnection: 'reconnectTries'
})
})
mongoose.connection.on('error', (error) => {
statusConnection = 'disconnected'
logger.error({
message: 'Database status',
statusConnection: 'disconnected',
error
})
// process.exit()
})
Код соединения
let opts = {
username: configService.database.username,
password: configService.database.password,
host: configService.database.host,
port: configService.database.port,
database: configService.database.database,
autoReconnect: true,
reconnectTries: 10,
reconnectInterval: 500
}
await mongoose.connect(opts)
Любая помощь
Пиво дляты, если ты в Париже :)