From d640af40367403a30f855e843e10baf5fb5bed7f Mon Sep 17 00:00:00 2001 From: Eugene Burmakin Date: Mon, 23 Dec 2024 00:27:42 +0100 Subject: [PATCH] Add cache cleaning and preheating --- CHANGELOG.md | 6 ++++++ app/services/cache/clean.rb | 24 ++++++++++++++++++++++++ config/environment.rb | 6 ++++-- 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 app/services/cache/clean.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index b8c8b2c1..a57d6e34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +# 0.21.1 - 2024-12-23 + +### Added + +- Cache cleaning and preheating upon application start. + # 0.21.0 - 2024-12-20 ⚠️ This release introduces a breaking change. ⚠️ diff --git a/app/services/cache/clean.rb b/app/services/cache/clean.rb new file mode 100644 index 00000000..46a69e0b --- /dev/null +++ b/app/services/cache/clean.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class Cache::Clean + class << self + def call + Rails.logger.info('Cleaning cache...') + delete_version_cache + delete_years_tracked_cache + Rails.logger.info('Cache cleaned') + end + + private + + def delete_version_cache + Rails.cache.delete(CheckAppVersion::VERSION_CACHE_KEY) + end + + def delete_years_tracked_cache + User.find_each do |user| + Rails.cache.delete("dawarich/user_#{user.id}_years_tracked") + end + end + end +end diff --git a/config/environment.rb b/config/environment.rb index c27e2a9f..3c870b83 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -6,6 +6,8 @@ require_relative 'application' # Initialize the Rails application. Rails.application.initialize! -# Clear the cache of the application version +# Clear the cache +Cache::Clean.call -Rails.cache.delete(CheckAppVersion::VERSION_CACHE_KEY) +# Preheat the cache +Cache::PreheatingJob.perform_later