15 May How to retry when exceptions happens in Ruby on Rails
A really simple retry when exceptions happen in Ruby on Rails as in this example I’m using a `find_by` from ActiveRecord ORM.
@tries = 5
def find_this_guy
sleep 5
my_record = MyModel.find_by!(id: 66, other_boolean_field: true)
Rails.logger.error "==== Success ====" if my_record
rescue Exception => e
Rails.logger.error e.to_s.red
@tries -= 1
if @tries > 0
Rails.logger.debug 'Searching this guy'.yellow
find_this_guy
else
Rails.logger.error "Error: #{e}".red
raise e
end
end
If we run that method in the Rails console, we will see a few attempts to find that record and it will retry 5 times, in case we want to see the `Success` message, we can open a new Rails console terminal and update that model field to satisfy our `find_by` line and the method will stop retrying as soon as that condition is met.
No Comments