Process last hour views instead of current hour
authorChocobozzz <me@florianbigard.com>
Thu, 13 Sep 2018 11:59:41 +0000 (13:59 +0200)
committerChocobozzz <me@florianbigard.com>
Thu, 13 Sep 2018 12:14:15 +0000 (14:14 +0200)
server/lib/job-queue/handlers/video-views.ts

index 8a011d109c1e98cd84ec0d8b1df51d82cff31d7b..cf180a11a28e5730e5b3179138b5d60f5fb1c3b7 100644 (file)
@@ -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