mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-02-20 22:21:16 +00:00
Merge pull request #1543 from hedgedoc/feat/db_reconnect
This commit is contained in:
commit
84b3504911
2 changed files with 33 additions and 13 deletions
41
app.js
41
app.js
|
@ -272,21 +272,38 @@ function startListen () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// sync db then start listen
|
const maxDBTries = 30
|
||||||
models.sequelize.authenticate().then(function () {
|
let currentDBTry = 1
|
||||||
models.runMigrations().then(() => {
|
function syncAndListen () {
|
||||||
sessionStore.sync()
|
// sync db then start listen
|
||||||
// check if realtime is ready
|
models.sequelize.authenticate().then(function () {
|
||||||
if (realtime.isReady()) {
|
models.runMigrations().then(() => {
|
||||||
models.Revision.checkAllNotesRevision(function (err, notes) {
|
sessionStore.sync()
|
||||||
if (err) throw new Error(err)
|
// check if realtime is ready
|
||||||
if (!notes || notes.length <= 0) return startListen()
|
if (realtime.isReady()) {
|
||||||
})
|
models.Revision.checkAllNotesRevision(function (err, notes) {
|
||||||
|
if (err) throw new Error(err)
|
||||||
|
if (!notes || notes.length <= 0) return startListen()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
logger.error('server still not ready after db synced')
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
if (currentDBTry < maxDBTries) {
|
||||||
|
logger.warn(`Database cannot be reached. Try ${currentDBTry} of ${maxDBTries}.`)
|
||||||
|
currentDBTry++
|
||||||
|
setTimeout(function () {
|
||||||
|
syncAndListen()
|
||||||
|
}, 1000)
|
||||||
} else {
|
} else {
|
||||||
throw new Error('server still not ready after db synced')
|
logger.error('Cannot reach database! Exiting.')
|
||||||
|
process.exit(1)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
|
syncAndListen()
|
||||||
|
|
||||||
// log uncaught exception
|
// log uncaught exception
|
||||||
process.on('uncaughtException', function (err) {
|
process.on('uncaughtException', function (err) {
|
||||||
|
|
|
@ -5,7 +5,10 @@
|
||||||
they were repeatedly used to exploit security vulnerabilities.
|
they were repeatedly used to exploit security vulnerabilities.
|
||||||
If you want to continue using Google Analytics or Disqus, you can re-enable them in the config.
|
If you want to continue using Google Analytics or Disqus, you can re-enable them in the config.
|
||||||
See [the docs](https://docs.hedgedoc.org/configuration/#web-security-aspects) for details.
|
See [the docs](https://docs.hedgedoc.org/configuration/#web-security-aspects) for details.
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- HedgeDoc now automatically retries connecting to the database up to 30 times on startup.
|
||||||
|
|
||||||
### Bugfixes
|
### Bugfixes
|
||||||
- Fix crash when trying to read the current Git commit on startup
|
- Fix crash when trying to read the current Git commit on startup
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue