mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 09:09:36 +02:00
feat: handle determining delay and when to send at notification processing instead of managing scheduledAt. this removes the need for scheduledAt as we will do the scheduling calculations at processing time
GitOrigin-RevId: d0bbd5adc29ab58a797c171b55aabfda1cec39ea
This commit is contained in:
committed by
Copybot
parent
23fc714d93
commit
bfa70bf43b
@@ -715,10 +715,14 @@ module.exports = {
|
||||
parseInt(process.env.OVERLEAF_PROJECT_HARD_DELETION_DELAY, 10) ||
|
||||
1000 * 60 * 60 * 24 * 90, // 90 days
|
||||
|
||||
// Delay before sending comment mention notifications
|
||||
commentMentionDelay:
|
||||
// Maximum Delay before sending comment mention notifications
|
||||
commentMentionMaxDelay:
|
||||
parseInt(process.env.COMMENT_MENTION_DELAY_MINUTES) || 30 * 60 * 1000, // 30 minutes
|
||||
|
||||
// Comment mention notifications will wait at least this long before being sent
|
||||
commentMentionMinDelay:
|
||||
parseInt(process.env.COMMENT_MENTION_DELAY_MINUTES) || 10 * 60 * 1000, // 10 minutes
|
||||
|
||||
// Maximum JSON size in HTTP requests
|
||||
// We should be able to process twice the max doc length, to allow for
|
||||
// - the doc content
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
|
||||
import Helpers from './lib/helpers.mjs'
|
||||
import { getCollectionInternal } from './lib/mongodb.mjs'
|
||||
|
||||
const tags = ['server-pro', 'saas']
|
||||
|
||||
const oldIndexes = [
|
||||
{
|
||||
key: {
|
||||
scheduledAt: 1,
|
||||
},
|
||||
name: 'scheduledAt_1',
|
||||
expireAfterSeconds: 60 * 60 * 24, // expire after 24 hours
|
||||
},
|
||||
]
|
||||
|
||||
const newIndexes = [
|
||||
{
|
||||
key: {
|
||||
createdAt: 1,
|
||||
},
|
||||
name: 'createdAt_1',
|
||||
expireAfterSeconds: 60 * 60 * 24, // expire after 24 hours
|
||||
},
|
||||
]
|
||||
|
||||
const migrate = async client => {
|
||||
const emailNotifications = await getCollectionInternal('emailNotifications')
|
||||
await Helpers.dropIndexesFromCollection(emailNotifications, oldIndexes)
|
||||
await Helpers.addIndexesToCollection(emailNotifications, newIndexes)
|
||||
}
|
||||
|
||||
const rollback = async client => {
|
||||
const emailNotifications = await getCollectionInternal('emailNotifications')
|
||||
await Helpers.dropIndexesFromCollection(emailNotifications, newIndexes)
|
||||
await Helpers.addIndexesToCollection(emailNotifications, oldIndexes)
|
||||
}
|
||||
|
||||
export default {
|
||||
tags,
|
||||
migrate,
|
||||
rollback,
|
||||
}
|
||||
Reference in New Issue
Block a user