Lord Sarevok

Desarrollador web

Método para hacer un retry de un bloque

December 16th 2010

Un método que he encontrado en este post, me ha venido de perlas

def retryable(options = {}, &block)
  opts = { :tries => 3, :on => Exception }.merge(options)

  retry_exception, retries = opts[:on], opts[:tries]

  begin
    return yield
  rescue retry_exception
    retry if (retries -= 1) > 0
  end

  yield
end