mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 06:03:45 +01:00
Merge pull request #12774 from overleaf/ds-em-mongo-secondary-db-fix
Bug fix - Mongo DB secondary preference GitOrigin-RevId: d9adc0a7e1ee5085b34c5c1ddfdc715967607fc3
This commit is contained in:
@@ -18,6 +18,7 @@ const ProjectGetter = require('../Project/ProjectGetter')
|
|||||||
const ProjectUpdateHandler = require('../Project/ProjectUpdateHandler')
|
const ProjectUpdateHandler = require('../Project/ProjectUpdateHandler')
|
||||||
const { Project } = require('../../models/Project')
|
const { Project } = require('../../models/Project')
|
||||||
const { ObjectId } = require('mongodb')
|
const { ObjectId } = require('mongodb')
|
||||||
|
const { READ_PREFERENCE_SECONDARY } = require('../../infrastructure/mongodb')
|
||||||
|
|
||||||
const MILISECONDS_IN_DAY = 86400000
|
const MILISECONDS_IN_DAY = 86400000
|
||||||
module.exports = InactiveProjectManager = {
|
module.exports = InactiveProjectManager = {
|
||||||
@@ -71,7 +72,7 @@ module.exports = InactiveProjectManager = {
|
|||||||
.select('_id')
|
.select('_id')
|
||||||
.sort({ _id: 1 })
|
.sort({ _id: 1 })
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
.read('secondary')
|
.read(READ_PREFERENCE_SECONDARY)
|
||||||
.exec(function (err, projects) {
|
.exec(function (err, projects) {
|
||||||
if (err != null) {
|
if (err != null) {
|
||||||
logger.err({ err }, 'could not get projects for deactivating')
|
logger.err({ err }, 'could not get projects for deactivating')
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ const TpdsUpdateSender = require('../ThirdPartyDataStore/TpdsUpdateSender')
|
|||||||
const ChatApiHandler = require('../Chat/ChatApiHandler')
|
const ChatApiHandler = require('../Chat/ChatApiHandler')
|
||||||
const moment = require('moment')
|
const moment = require('moment')
|
||||||
const { promiseMapWithLimit } = require('../../util/promises')
|
const { promiseMapWithLimit } = require('../../util/promises')
|
||||||
|
const { READ_PREFERENCE_SECONDARY } = require('../../infrastructure/mongodb')
|
||||||
|
|
||||||
const EXPIRE_PROJECTS_AFTER_DAYS = 90
|
const EXPIRE_PROJECTS_AFTER_DAYS = 90
|
||||||
const PROJECT_EXPIRATION_BATCH_SIZE = 10000
|
const PROJECT_EXPIRATION_BATCH_SIZE = 10000
|
||||||
@@ -94,7 +95,7 @@ async function expireDeletedProjectsAfterDuration() {
|
|||||||
{ 'deleterData.deletedProjectId': 1 }
|
{ 'deleterData.deletedProjectId': 1 }
|
||||||
)
|
)
|
||||||
.limit(PROJECT_EXPIRATION_BATCH_SIZE)
|
.limit(PROJECT_EXPIRATION_BATCH_SIZE)
|
||||||
.read('secondary')
|
.read(READ_PREFERENCE_SECONDARY)
|
||||||
const projectIds = _.shuffle(
|
const projectIds = _.shuffle(
|
||||||
deletedProjects.map(
|
deletedProjects.map(
|
||||||
deletedProject => deletedProject.deleterData.deletedProjectId
|
deletedProject => deletedProject.deleterData.deletedProjectId
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ if (
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const READ_PREFERENCE_PRIMARY = ReadPreference.primary
|
const READ_PREFERENCE_PRIMARY = ReadPreference.primary.mode
|
||||||
const READ_PREFERENCE_SECONDARY = Settings.mongo.hasSecondaries
|
const READ_PREFERENCE_SECONDARY = Settings.mongo.hasSecondaries
|
||||||
? ReadPreference.secondary
|
? ReadPreference.secondary.mode
|
||||||
: ReadPreference.secondaryPreferred
|
: ReadPreference.secondaryPreferred.mode
|
||||||
|
|
||||||
let setupDbPromise
|
let setupDbPromise
|
||||||
async function waitForDb() {
|
async function waitForDb() {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ const modulePath = path.join(
|
|||||||
'../../../../app/src/Features/InactiveData/InactiveProjectManager'
|
'../../../../app/src/Features/InactiveData/InactiveProjectManager'
|
||||||
)
|
)
|
||||||
const { expect } = require('chai')
|
const { expect } = require('chai')
|
||||||
const { ObjectId } = require('mongodb')
|
const { ObjectId, ReadPreference } = require('mongodb')
|
||||||
|
|
||||||
describe('InactiveProjectManager', function () {
|
describe('InactiveProjectManager', function () {
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
@@ -42,6 +42,10 @@ describe('InactiveProjectManager', function () {
|
|||||||
'../Project/ProjectUpdateHandler': this.ProjectUpdateHandler,
|
'../Project/ProjectUpdateHandler': this.ProjectUpdateHandler,
|
||||||
'../Project/ProjectGetter': this.ProjectGetter,
|
'../Project/ProjectGetter': this.ProjectGetter,
|
||||||
'../../models/Project': {},
|
'../../models/Project': {},
|
||||||
|
'../../infrastructure/mongodb': {
|
||||||
|
ObjectId,
|
||||||
|
READ_PREFERENCE_SECONDARY: ReadPreference.secondaryPreferred.mode,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
return (this.project_id = '1234')
|
return (this.project_id = '1234')
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ const tk = require('timekeeper')
|
|||||||
const moment = require('moment')
|
const moment = require('moment')
|
||||||
const { Project } = require('../helpers/models/Project')
|
const { Project } = require('../helpers/models/Project')
|
||||||
const { DeletedProject } = require('../helpers/models/DeletedProject')
|
const { DeletedProject } = require('../helpers/models/DeletedProject')
|
||||||
const { ObjectId } = require('mongodb')
|
const { ObjectId, ReadPreference } = require('mongodb')
|
||||||
const Errors = require('../../../../app/src/Features/Errors/Errors')
|
const Errors = require('../../../../app/src/Features/Errors/Errors')
|
||||||
|
|
||||||
describe('ProjectDeleter', function () {
|
describe('ProjectDeleter', function () {
|
||||||
@@ -160,7 +160,11 @@ describe('ProjectDeleter', function () {
|
|||||||
'../Collaborators/CollaboratorsGetter': this.CollaboratorsGetter,
|
'../Collaborators/CollaboratorsGetter': this.CollaboratorsGetter,
|
||||||
'../Docstore/DocstoreManager': this.DocstoreManager,
|
'../Docstore/DocstoreManager': this.DocstoreManager,
|
||||||
'./ProjectDetailsHandler': this.ProjectDetailsHandler,
|
'./ProjectDetailsHandler': this.ProjectDetailsHandler,
|
||||||
'../../infrastructure/mongodb': { db: this.db, ObjectId },
|
'../../infrastructure/mongodb': {
|
||||||
|
db: this.db,
|
||||||
|
ObjectId,
|
||||||
|
READ_PREFERENCE_SECONDARY: ReadPreference.secondaryPreferred.mode,
|
||||||
|
},
|
||||||
'../History/HistoryManager': this.HistoryManager,
|
'../History/HistoryManager': this.HistoryManager,
|
||||||
'../../models/ProjectAuditLogEntry': {
|
'../../models/ProjectAuditLogEntry': {
|
||||||
ProjectAuditLogEntry: this.ProjectAuditLogEntry,
|
ProjectAuditLogEntry: this.ProjectAuditLogEntry,
|
||||||
|
|||||||
Reference in New Issue
Block a user