diff --git a/lib/query_helper.rb b/lib/query_helper.rb index adcd3ca..4171734 100644 --- a/lib/query_helper.rb +++ b/lib/query_helper.rb @@ -169,6 +169,7 @@ def view_query end def execute_query + retry_count ||= 0 begin query = build_query() @results = @model.find_by_sql([query, @bind_variables]) # Execute Sql Query @@ -179,8 +180,14 @@ def execute_query load_associations() clean_results() rescue ActiveRecord::SerializationFailure => e - Rails.logger.warn("Retrying after serialization failure: #{e.message}") - retry + retry_count += 1 + if retry_count < 3 + Rails.logger.warn("Retrying after serialization failure (attempt #{retry_count}/3): #{e.message}") + retry + else + Rails.logger.error("Max retries reached after serialization failure: #{e.message}") + raise + end end end