Fix video views increment
authorChocobozzz <me@florianbigard.com>
Thu, 13 Sep 2018 08:13:25 +0000 (10:13 +0200)
committerChocobozzz <me@florianbigard.com>
Thu, 13 Sep 2018 08:13:25 +0000 (10:13 +0200)
client/src/app/core/hotkeys/index.ts
server/lib/job-queue/handlers/video-views.ts

index bd2ab5b7a9ba8ee5953d403a4c0dc049fa285e1b..a8d807c712a689452c6d5778caa24b1730a63096 100644 (file)
@@ -1 +1 @@
-export * from './hotkeys.component'
\ No newline at end of file
+export * from './hotkeys.component'
index 875d8ab88432d52662443fbaefca9905c29e870f..8a011d109c1e98cd84ec0d8b1df51d82cff31d7b 100644 (file)
@@ -14,22 +14,31 @@ async function processVideosViewsViews () {
   logger.info('Processing videos views in job for hour %d.', hour)
 
   for (const videoId of videoIds) {
-    const views = await Redis.Instance.getVideoViews(videoId, hour)
-    if (isNaN(views)) {
-      logger.error('Cannot process videos views of video %s in hour %d: views number is NaN.', videoId, hour)
-    } else {
-      logger.debug('Adding %d views to video %d in hour %d.', views, videoId, hour)
-
-      await VideoModel.incrementViews(videoId, views)
-      await VideoViewModel.create({
-        startDate,
-        endDate,
-        views,
-        videoId
-      })
+    try {
+      const views = await Redis.Instance.getVideoViews(videoId, hour)
+      if (isNaN(views)) {
+        logger.error('Cannot process videos views of video %d in hour %d: views number is NaN.', videoId, hour)
+      } else {
+        logger.debug('Adding %d views to video %d in hour %d.', views, videoId, hour)
+
+        await VideoModel.incrementViews(videoId, views)
+
+        try {
+          await VideoViewModel.create({
+            startDate,
+            endDate,
+            views,
+            videoId
+          })
+        } catch (err) {
+          logger.debug('Cannot create video views for video %d in hour %d. Maybe the video does not exist anymore?', videoId, hour)
+        }
+      }
+
+      await Redis.Instance.deleteVideoViews(videoId, hour)
+    } catch (err) {
+      logger.error('Cannot update video views of video %d in hour %d.', videoId, hour)
     }
-
-    await Redis.Instance.deleteVideoViews(videoId, hour)
   }
 }