diff --git a/src/version.js b/src/version.js index 45c39916ee92ec1baa4c363e3a1db4cab47e7816..f14e4e636343f932fd4ebbdab22df1c7ac104293 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) }