diff options
Diffstat (limited to 'server/server/lib/schedulers/remove-old-views-scheduler.ts')
-rw-r--r-- | server/server/lib/schedulers/remove-old-views-scheduler.ts | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/server/server/lib/schedulers/remove-old-views-scheduler.ts b/server/server/lib/schedulers/remove-old-views-scheduler.ts new file mode 100644 index 000000000..7bd28b17b --- /dev/null +++ b/server/server/lib/schedulers/remove-old-views-scheduler.ts | |||
@@ -0,0 +1,31 @@ | |||
1 | import { VideoViewModel } from '@server/models/view/video-view.js' | ||
2 | import { logger } from '../../helpers/logger.js' | ||
3 | import { CONFIG } from '../../initializers/config.js' | ||
4 | import { SCHEDULER_INTERVALS_MS } from '../../initializers/constants.js' | ||
5 | import { AbstractScheduler } from './abstract-scheduler.js' | ||
6 | |||
7 | export class RemoveOldViewsScheduler extends AbstractScheduler { | ||
8 | |||
9 | private static instance: AbstractScheduler | ||
10 | |||
11 | protected schedulerIntervalMs = SCHEDULER_INTERVALS_MS.REMOVE_OLD_VIEWS | ||
12 | |||
13 | private constructor () { | ||
14 | super() | ||
15 | } | ||
16 | |||
17 | protected internalExecute () { | ||
18 | if (CONFIG.VIEWS.VIDEOS.REMOTE.MAX_AGE === -1) return | ||
19 | |||
20 | logger.info('Removing old videos views.') | ||
21 | |||
22 | const now = new Date() | ||
23 | const beforeDate = new Date(now.getTime() - CONFIG.VIEWS.VIDEOS.REMOTE.MAX_AGE).toISOString() | ||
24 | |||
25 | return VideoViewModel.removeOldRemoteViewsHistory(beforeDate) | ||
26 | } | ||
27 | |||
28 | static get Instance () { | ||
29 | return this.instance || (this.instance = new this()) | ||
30 | } | ||
31 | } | ||