shouldRefresh(duration = 1 * 60 * 60 * 1000) { // Default: 1 hour
        if (!this.lastChecked) {
            return true;
        }

        const now = Date.now();
        const elapsed = now - this.lastChecked;
        const jitter = Math.floor(Math.random() * 15 * 60 * 1000); // Up to 15 minutes
        return elapsed > (duration - jitter);
    }
Determines if the cache should be refreshed based on the last checked time.
@param {number} duration - Duration in milliseconds for cache validity.
@returns {boolean} true if the cache should be refreshed, else false.