FIX: reduce amount of work onceoff does

In the past onceoff was forcing inline download of gravatars,
this can be so expensive that it will never finish

This fix ensures it only marks avatars stale which will be picked
up by regular schedules
This commit is contained in:
Sam 2018-10-16 10:29:16 +11:00
parent 4c2331260e
commit 8d06731484

View File

@ -2,11 +2,13 @@ module Jobs
class FixInvalidGravatarUploads < Jobs::Onceoff
def execute_onceoff(args)
Upload.where(original_filename: "gravatar.png").find_each do |upload|
# note, this still feels pretty expensive for a once off
# we may need to re-evaluate this
extension = FastImage.type(Discourse.store.path_for(upload))
current_extension = upload.extension
if extension.to_s.downcase != current_extension.to_s.downcase
upload.user.user_avatar.update_gravatar!
upload&.user&.user_avatar&.update_columns(last_gravatar_download_attempt: nil)
end
end
end