diff --git a/src/version.js b/src/version.js index 783f6b1ede988f2c7e31535209bcdced85df2d76..87fe1bd8e91e5782ac18a6d46667ebf48a240c45 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.')