mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #98 from overleaf/jpa-hotfix-pack-worker
[PackWorker] fixes for the native mongo driver
This commit is contained in:
commit
3da2e0370a
2 changed files with 30 additions and 6 deletions
|
@ -15,10 +15,11 @@
|
||||||
*/
|
*/
|
||||||
let LIMIT, pending
|
let LIMIT, pending
|
||||||
let project_id, doc_id
|
let project_id, doc_id
|
||||||
|
const { callbackify } = require('util')
|
||||||
const Settings = require('settings-sharelatex')
|
const Settings = require('settings-sharelatex')
|
||||||
const async = require('async')
|
const async = require('async')
|
||||||
const _ = require('underscore')
|
const _ = require('underscore')
|
||||||
const { db, ObjectId } = require('./mongodb')
|
const { db, ObjectId, waitForDb, closeDb } = require('./mongodb')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const Metrics = require('metrics-sharelatex')
|
const Metrics = require('metrics-sharelatex')
|
||||||
Metrics.initialize('track-changes')
|
Metrics.initialize('track-changes')
|
||||||
|
@ -84,7 +85,7 @@ const finish = function () {
|
||||||
clearTimeout(shutDownTimer)
|
clearTimeout(shutDownTimer)
|
||||||
}
|
}
|
||||||
logger.log('closing db')
|
logger.log('closing db')
|
||||||
return db.close(function () {
|
callbackify(closeDb)(function () {
|
||||||
logger.log('closing LockManager Redis Connection')
|
logger.log('closing LockManager Redis Connection')
|
||||||
return LockManager.close(function () {
|
return LockManager.close(function () {
|
||||||
logger.log(
|
logger.log(
|
||||||
|
@ -160,10 +161,21 @@ const ObjectIdFromDate = function (date) {
|
||||||
// find packs to be marked as finalised:true, those which have a newer pack present
|
// find packs to be marked as finalised:true, those which have a newer pack present
|
||||||
// then only consider finalised:true packs for archiving
|
// then only consider finalised:true packs for archiving
|
||||||
|
|
||||||
|
waitForDb()
|
||||||
|
.then(() => {
|
||||||
if (pending != null) {
|
if (pending != null) {
|
||||||
logger.log(`got ${pending.length} entries from ${source}`)
|
logger.log(`got ${pending.length} entries from ${source}`)
|
||||||
processUpdates(pending)
|
processUpdates(pending)
|
||||||
} else {
|
} else {
|
||||||
|
processFromOneWeekAgo()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
logger.fatal({ err }, 'cannot connect to mongo, exiting')
|
||||||
|
process.exit(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
function processFromOneWeekAgo() {
|
||||||
const oneWeekAgo = new Date(Date.now() - 7 * DAYS)
|
const oneWeekAgo = new Date(Date.now() - 7 * DAYS)
|
||||||
db.docHistory
|
db.docHistory
|
||||||
.find(
|
.find(
|
||||||
|
|
|
@ -23,8 +23,20 @@ async function setupDb() {
|
||||||
db.projectHistoryMetaData = internalDb.collection('projectHistoryMetaData')
|
db.projectHistoryMetaData = internalDb.collection('projectHistoryMetaData')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function closeDb() {
|
||||||
|
let client
|
||||||
|
try {
|
||||||
|
client = await clientPromise
|
||||||
|
} catch (e) {
|
||||||
|
// there is nothing to close
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return client.close()
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
db,
|
db,
|
||||||
ObjectId,
|
ObjectId,
|
||||||
|
closeDb,
|
||||||
waitForDb
|
waitForDb
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue