sql >> Database >  >> RDS >> Mysql

ActiveRecord3 deadlock opnieuw proberen

Ik wist niet eens dat er een plug-in was om dit te doen :)

Dit is wat we gebruiken (maar je moet er zelf vragen stellen die gevoelig zijn voor deadlocks):

# 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. Moet u de gegevenstypen MONEY of DECIMAL(x,y) in SQL Server kiezen?

  2. Is het mogelijk om een ​​boomstructuurtabel in MySQL in één enkele query te doorzoeken, tot op elke diepte?

  3. Hoe een array op te slaan in mysql?

  4. Ping een MySQL-server