Add deleting old families in the background

This commit is contained in:
Jonas Lochmann
2019-10-21 14:14:56 +02:00
parent 306bc0646f
commit 57030b7f91
2 changed files with 39 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { Database } from '../database'
import { deleteOldFamilies } from '../function/cleanup/delete-old-families'
export function initDeleteOldFamiliesWorker ({ database }: {
database: Database
}) {
function doWorkSafe () {
deleteOldFamilies(database).catch((ex) => {
console.warn('error deleting old families', ex)
})
}
setTimeout(() => {
doWorkSafe()
setInterval(() => {
doWorkSafe()
}, 1000 * 60 * 60 /* every 4 hours */)
}, 1000 * 60 * 23 /* after 23 minutes */)
}
+2
View File
@@ -18,6 +18,7 @@
import { Database } from '../database'
import { WebsocketApi } from '../websocket'
import { initDeleteDeprecatedPurchasesWorker } from './delete-deprecated-purchases'
import { initDeleteOldFamiliesWorker } from './delete-old-families'
import { initDeleteOldTokensWorker } from './delete-old-tokens'
import { initDeleteOldUsedTimesWorker } from './delete-old-used-times'
@@ -26,6 +27,7 @@ export function initWorkers ({ database, websocket }: {
websocket: WebsocketApi
}) {
initDeleteDeprecatedPurchasesWorker({ database, websocket })
initDeleteOldFamiliesWorker({ database })
initDeleteOldTokensWorker({ database })
initDeleteOldUsedTimesWorker({ database })
}