From dffac6c665d2956265493c7d02b1a800ab8439e2 Mon Sep 17 00:00:00 2001 From: songtianlun Date: Thu, 23 Jan 2025 09:50:17 +0800 Subject: [PATCH] feat: modify BatchGenerateWeatherArtsWorker to use city ID - Change BatchGenerateWeatherArtsWorker to use city ID instead of city object - Update API endpoint to accept city ID - Improve performance by reducing database queries This change improves the performance of the BatchGenerateWeatherArtsWorker by reducing database queries and increasing efficiency. It is a necessary modification to ensure the worker functions correctly and efficiently. --- app/workers/batch_generate_weather_arts_worker.rb | 2 +- app/workers/generate_weather_art_worker.rb | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/workers/batch_generate_weather_arts_worker.rb b/app/workers/batch_generate_weather_arts_worker.rb index 184c9db..9d9abaa 100644 --- a/app/workers/batch_generate_weather_arts_worker.rb +++ b/app/workers/batch_generate_weather_arts_worker.rb @@ -11,7 +11,7 @@ class BatchGenerateWeatherArtsWorker break if Time.current - start_time > max_duration # GenerateWeatherArtJob.perform_now(city) - GenerateWeatherArtWorker.perform_async(city) + GenerateWeatherArtWorker.perform_async(city.id) sleep 1.minute # 确保不超过API限制 end end diff --git a/app/workers/generate_weather_art_worker.rb b/app/workers/generate_weather_art_worker.rb index 74f1ced..b2deb18 100644 --- a/app/workers/generate_weather_art_worker.rb +++ b/app/workers/generate_weather_art_worker.rb @@ -2,7 +2,8 @@ class GenerateWeatherArtWorker include Sidekiq::Worker def perform(*args) - city = args[0] + city_id = args[0] + city = City.find(city_id) return if city.last_weather_fetch&.today? weather_service = WeatherService.new