sql >> Database teknologi >  >> RDS >> Mysql

ActiveRecord3 dødvande prøv igen

Jeg vidste ikke engang, at der var et plugin til at gøre dette :)

Her er, hvad vi bruger (men du skal selv pakke forespørgsler, der er tilbøjelige til dødvande), i det):

# Executes the given block +retries+ times (or forever, if explicitly given nil),
# catching and retrying SQL Deadlock errors.
def retry_lock_error(retries = 100, &block)
  begin
    yield
  rescue ActiveRecord::StatementInvalid => e
    if e.message =~ /Deadlock found when trying to get lock/ and (retries.nil? || retries > 0)
      retry_lock_error(retries ? retries - 1 : nil, &block)
    else
      raise e
    end
  end
end


  1. ECONNREFUSED for Postgres på nodeJS med dockers

  2. Hvordan kan jeg kalde en SQL Stored Procedure ved hjælp af EntityFramework 7 og Asp.Net 5

  3. MYSQL returnerer duplikerede rækker

  4. hvordan kan jeg oprette ny XML-fil fra eksisterende database i PostgreSQL-databasen ved hjælp af java