From 6f0c46be8c9f4690d5e5cb758c4df6164b006f83 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 13 Sep 2018 13:59:41 +0200 Subject: [PATCH] Process last hour views instead of current hour --- server/lib/job-queue/handlers/video-views.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/server/lib/job-queue/handlers/video-views.ts b/server/lib/job-queue/handlers/video-views.ts index 8a011d109..cf180a11a 100644 --- a/server/lib/job-queue/handlers/video-views.ts +++ b/server/lib/job-queue/handlers/video-views.ts @@ -2,11 +2,17 @@ import { Redis } from '../../redis' import { logger } from '../../../helpers/logger' import { VideoModel } from '../../../models/video/video' import { VideoViewModel } from '../../../models/video/video-views' +import { isTestInstance } from '../../../helpers/core-utils' async function processVideosViewsViews () { - const hour = new Date().getHours() - const startDate = new Date().setMinutes(0, 0, 0) - const endDate = new Date().setMinutes(59, 59, 999) + const lastHour = new Date() + + // In test mode, we run this function multiple times per hour, so we don't want the values of the previous hour + if (!isTestInstance()) lastHour.setHours(lastHour.getHours() - 1) + + const hour = lastHour.getHours() + const startDate = lastHour.setMinutes(0, 0, 0) + const endDate = lastHour.setMinutes(59, 59, 999) const videoIds = await Redis.Instance.getVideosIdViewed(hour) if (videoIds.length === 0) return