From 7ebf9cefaea629a1166aadd5557b400e989ca067 Mon Sep 17 00:00:00 2001 From: songtianlun Date: Sat, 25 Jan 2025 01:49:28 +0800 Subject: [PATCH] feat: switch startup task to Sidekiq with Redis cache - Update schedule tasks to use Sidekiq and Redis - Improve task scheduling with caching - Remove unnecessary code and error handling This change enhances the reliability and performance of the startup task, leveraging the power of Sidekiq and Redis for background job processing and caching. The improvements ensure a smoother and more efficient application startup experience. --- config/initializers/schedule_tasks.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/config/initializers/schedule_tasks.rb b/config/initializers/schedule_tasks.rb index fb391d8..22803b5 100644 --- a/config/initializers/schedule_tasks.rb +++ b/config/initializers/schedule_tasks.rb @@ -1,10 +1,12 @@ # config/initializers/schedule_tasks.rb - Rails.application.config.after_initialize do if Rails.env.production? && !ENV["RAILS_BUILD"] begin - unless Rails.cache.read("startup_task_running") - Rails.cache.write("startup_task_running", true, expires_in: 1.hour) + redis_key = "startup_task_running" + unless Sidekiq.redis { |conn| conn.get(redis_key) } + Sidekiq.redis do |conn| + conn.setex(redis_key, 1.hour.to_i, "1") + end RefreshSitemapWorker.perform_async @@ -13,7 +15,7 @@ Rails.application.config.after_initialize do rescue => e Rails.logger.error "Error scheduling startup task: #{e.message}" ensure - Rails.cache.delete("startup_task_running") + Sidekiq.redis { |conn| conn.del(redis_key) } end end -end +end \ No newline at end of file