From 64f2780a1bdb3de9e65dd23c885b85b215e4cb69 Mon Sep 17 00:00:00 2001
From: Richard Petersen <richard.petersen@open-xchange.com>
Date: Wed, 17 Aug 2022 12:08:52 +0200
Subject: [PATCH] Only perform the version update if there has nothing changed
 within the last cycle

---
 src/version.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/version.js b/src/version.js
index 783f6b1..87fe1bd 100644
--- a/src/version.js
+++ b/src/version.js
@@ -78,8 +78,14 @@ export async function updateVersionProcessor () {
   }
   logger.info(`[Version] Found new source version. Current version: '${storedVersion}', new version: '${fetchedVersion}'`)
   if (redis.isEnabled()) {
-    redis.pubClient.publish(getRedisKey({ name: 'updateLatestVersion' }), fetchedVersion)
-    await redis.client.set(getRedisKey({ name: 'latestVersion' }), fetchedVersion)
+    const prevProcessedVersion = await redis.client.get(getRedisKey({ name: 'prevProcessedVersion' }))
+    // that means, that between the previous update processing and this one, there was no version change
+    if (prevProcessedVersion === fetchedVersion) {
+      redis.pubClient.publish(getRedisKey({ name: 'updateLatestVersion' }), fetchedVersion)
+      await redis.client.set(getRedisKey({ name: 'latestVersion' }), fetchedVersion)
+    } else {
+      await redis.client.set(getRedisKey({ name: 'prevProcessedVersion' }), fetchedVersion)
+    }
   } else {
     // if redis is disabled, this will only be trigger by a setInterval and not from a redis event
     logger.info('[Version] Clear local cache due to version update.')
-- 
GitLab