[CE/SP] Flush redis on docker stop (#11714)

* [CE/SP] Flush redis on `docker stop`

* Extracted `limit` to variable

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>

* Increased logging

---------

Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: 4bcb4e70988337369acca0e80f243609bd6323ed
This commit is contained in:
Miguel Serrano 2023-02-08 16:02:21 +01:00 committed by Copybot
parent 204e7a0c87
commit 909bb99b9f
6 changed files with 89 additions and 2 deletions

View file

@ -52,9 +52,10 @@ ADD server-ce/cron /overleaf/cron
ADD server-ce/config/crontab-history /etc/cron.d/crontab-history
RUN chmod 600 /etc/cron.d/crontab-history
# Copy Phusion Image startup scripts to its location
# --------------------------------------------------
# Copy Phusion Image startup and shutdown scripts to their locations
# ------------------------------------------------------------------
COPY server-ce/init_scripts/ /etc/my_init.d/
COPY server-ce/init_preshutdown_scripts/ /etc/my_init.pre_shutdown.d/
# Copy app settings files
# -----------------------

View file

@ -0,0 +1,11 @@
#!/bin/sh
cd /overleaf/services/project-history && node scripts/flush_all.js >> /var/log/sharelatex/project-history.log 2>&1
EXIT_CODE="$?"
if [ $EXIT_CODE -ne 0 ]
then
echo "project-history/scripts/flush_all.js failed with exit code $EXIT_CODE"
fi
exit 0

View file

@ -0,0 +1,11 @@
#!/bin/sh
cd /overleaf/services/track-changes && node scripts/flush_all.js >> /var/log/sharelatex/track-changes.log 2>&1
EXIT_CODE="$?"
if [ $EXIT_CODE -ne 0 ]
then
echo "track-changes/scripts/flush_all.js failed with exit code $EXIT_CODE"
fi
exit 0

View file

@ -0,0 +1,11 @@
#!/bin/sh
cd /overleaf/services/document-updater && node scripts/flush_all.js >> /var/log/sharelatex/document-updater.log 2>&1
EXIT_CODE="$?"
if [ $EXIT_CODE -ne 0 ]
then
echo "document-updater/scripts/flush_all.js failed with exit code $EXIT_CODE"
fi
exit 0

View file

@ -0,0 +1,28 @@
const ProjectFlusher = require('../app/js/ProjectFlusher')
async function main() {
console.log('Flushing all projects')
return new Promise((resolve, reject) => {
const options = {
limit: 100000,
concurrency: 5,
}
ProjectFlusher.flushAllProjects(options, err => {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
main()
.then(() => {
console.log('Done flushing all projects')
process.exit(0)
})
.catch(error => {
console.error('There was an error flushing all projects', { error })
process.exit(1)
})

View file

@ -0,0 +1,25 @@
const UpdatesManager = require('../app/js/UpdatesManager')
async function main() {
return new Promise((resolve, reject) => {
const limit = -1
console.log('Flushing all updates')
UpdatesManager.flushAll(limit, err => {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
main()
.then(() => {
console.log('Done flushing all updates')
process.exit(0)
})
.catch(error => {
console.error('There was an error flushing updates', { error })
process.exit(1)
})