From 9431cabf8a92f602cf3b4626e12f23b0910f52a8 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 13 Sep 2018 10:13:25 +0200 Subject: Fix video views increment --- client/src/app/core/hotkeys/index.ts | 2 +- server/lib/job-queue/handlers/video-views.ts | 39 +++++++++++++++++----------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/client/src/app/core/hotkeys/index.ts b/client/src/app/core/hotkeys/index.ts index bd2ab5b7a..a8d807c71 100644 --- a/client/src/app/core/hotkeys/index.ts +++ b/client/src/app/core/hotkeys/index.ts @@ -1 +1 @@ -export * from './hotkeys.component' \ No newline at end of file +export * from './hotkeys.component' diff --git a/server/lib/job-queue/handlers/video-views.ts b/server/lib/job-queue/handlers/video-views.ts index 875d8ab88..8a011d109 100644 --- a/server/lib/job-queue/handlers/video-views.ts +++ b/server/lib/job-queue/handlers/video-views.ts @@ -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) } } -- cgit v1.2.3