From 8d1dbf517637e8444bd177421ca96be79df935b0 Mon Sep 17 00:00:00 2001 From: Richard Petersen <richard.petersen@open-xchange.com> Date: Wed, 25 May 2022 17:42:38 +0200 Subject: [PATCH] Clear the cache on version update --- src/version.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/version.js b/src/version.js index 45c3991..f14e4e6 100644 --- a/src/version.js +++ b/src/version.js @@ -2,6 +2,7 @@ import fetch from 'node-fetch' import { config } from './config.js' import { getRedisKey, hash } from './util.js' import { logger } from './logger.js' +import * as cache from './cache.js' import * as redis from './redis.js' let latestVersion @@ -49,15 +50,16 @@ export async function getLatestVersion () { } export function registerLatestVersionListener (client) { - if (redis.isEnabled()) { - const key = getRedisKey({ name: 'updateLatestVersion' }) - client.subscribe(key, (errs, count) => logger.info(`[Redis] Subscribed to ${key}.`)) - client.on('message', async (channel, message) => { - if (channel !== key) return - await config.load() - latestVersion = message - }) - } + if (!redis.isEnabled()) return + + const key = getRedisKey({ name: 'updateLatestVersion' }) + client.subscribe(key, (errs, count) => logger.info(`[Redis] Subscribed to ${key}.`)) + client.on('message', async (channel, message) => { + if (channel !== key) return + await config.load() + cache.clear() + latestVersion = message + }) } export async function updateVersionProcessor () { @@ -70,6 +72,9 @@ export async function updateVersionProcessor () { if (redis.isEnabled()) { redis.pubClient.publish(getRedisKey({ name: 'updateLatestVersion' }), fetchedVersion) await redis.client.set(getRedisKey({ name: 'latestVersion' }), fetchedVersion) + } else { + // if redis is disabled, this will only be trigger by a setInterval and not from a redis event + cache.clear() } return (latestVersion = fetchedVersion) } -- GitLab