diff --git a/src/worker/delete-old-families.ts b/src/worker/delete-old-families.ts new file mode 100644 index 0000000..f15116d --- /dev/null +++ b/src/worker/delete-old-families.ts @@ -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 . + */ + +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 */) +} diff --git a/src/worker/index.ts b/src/worker/index.ts index bf1ea4b..2adaca8 100644 --- a/src/worker/index.ts +++ b/src/worker/index.ts @@ -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 }) }