def check_image_url
unless image_url.blank?
if image_url_checked_at.nil? || (image_url_good? && image_url_checked_at < 2.weeks.ago)
begin
async_send :ensure_image_url
rescue Beanstalk::NotConnected
Norman.deliver_shout "Beanstalkd server did not connect in #{RAILS_ENV} mode at #{Time.now}",
"Product image checking will not be available until this is rectified"
end
end
end
end
def ensure_image_url
return unless Rails.env.production?
begin
response = SimpleHttp.head(image_url)
content_type = response["content-type"]
if content_type =~ /^image/
self.image_url_good = true
else
self.image_url_good = false
end
rescue Errno::ETIMEDOUT
return
rescue RuntimeError, SocketError => err
self.image_url_good = false
end
self.image_url_checked_at = Time.now
ThinkingSphinx.deltas_enabled = false
save false
ThinkingSphinx.deltas_enabled = true
end