2014-05-26 05:46:43 -04:00
|
|
|
module Jobs
|
|
|
|
class CreateMissingAvatars < Jobs::Scheduled
|
|
|
|
every 1.hour
|
|
|
|
def execute(args)
|
2014-05-27 21:50:49 -04:00
|
|
|
UserAvatar
|
|
|
|
.where("system_upload_id IS NULL OR system_avatar_version != ?", UserAvatar::SYSTEM_AVATAR_VERSION)
|
|
|
|
.find_each do |a|
|
2014-05-28 05:55:33 -04:00
|
|
|
if a.user
|
|
|
|
a.update_system_avatar!
|
|
|
|
else
|
|
|
|
Rails.logger.warn("Detected stray avatar for avatar_user_id #{a.id}")
|
|
|
|
end
|
2014-05-26 05:46:43 -04:00
|
|
|
end
|
2014-05-27 06:46:17 -04:00
|
|
|
|
2014-05-27 21:50:49 -04:00
|
|
|
# backfill in batches 5000 an hour
|
2014-05-28 03:57:15 -04:00
|
|
|
UserAvatar.where(last_gravatar_download_attempt: nil).includes(:user)
|
|
|
|
.order("users.last_posted_at desc")
|
2014-05-27 21:50:49 -04:00
|
|
|
.limit(5000).each do |u|
|
2014-05-28 03:57:15 -04:00
|
|
|
u.user.refresh_avatar
|
|
|
|
u.user.save
|
2014-05-27 06:46:17 -04:00
|
|
|
end
|
2014-05-26 05:46:43 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|