|
@@ -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
|
|
|
|
|
|
|
|
-if (pending != null) {
|
|
|
|
|
- logger.log(`got ${pending.length} entries from ${source}`)
|
|
|
|
|
- processUpdates(pending)
|
|
|
|
|
-} else {
|
|
|
|
|
|
|
+waitForDb()
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ if (pending != null) {
|
|
|
|
|
+ logger.log(`got ${pending.length} entries from ${source}`)
|
|
|
|
|
+ processUpdates(pending)
|
|
|
|
|
+ } 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(
|