diff --git a/app/jobs/scheduled/create_missing_avatars.rb b/app/jobs/scheduled/create_missing_avatars.rb index c7d0d038197..e29b73b11f1 100644 --- a/app/jobs/scheduled/create_missing_avatars.rb +++ b/app/jobs/scheduled/create_missing_avatars.rb @@ -2,14 +2,17 @@ module Jobs class CreateMissingAvatars < Jobs::Scheduled every 1.hour def execute(args) - User.where(uploaded_avatar_id: nil).find_each do |u| - u.refresh_avatar - u.save - end - UserAvatar.where(system_upload_id: nil).find_each do |a| a.update_system_avatar! end + + # backfill in batches 1000 an hour + User.where(uploaded_avatar_id: nil) + .order("last_posted_at desc") + .limit(1000).find_each do |u| + u.refresh_avatar + u.save + end end end end diff --git a/spec/jobs/create_missing_avatars_spec.rb b/spec/jobs/create_missing_avatars_spec.rb new file mode 100644 index 00000000000..09cd1a9dc30 --- /dev/null +++ b/spec/jobs/create_missing_avatars_spec.rb @@ -0,0 +1,9 @@ +require 'spec_helper' + +require_dependency 'jobs/scheduled/create_missing_avatars' + +describe Jobs::CreateMissingAvatars do + it "runs correctly without crashing" do + Jobs::CreateMissingAvatars.new.execute(nil) + end +end