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.
This commit is contained in:
songtianlun 2025-01-23 09:50:17 +08:00
parent c5101fb822
commit dffac6c665
2 changed files with 3 additions and 2 deletions

View File

@ -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

View File

@ -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