sql >> Databáze >  >> RDS >> Mysql

Pokus o zablokování ActiveRecord3 znovu

Ani jsem nevěděl, že na to existuje plugin :)

Zde je to, co používáme (ale musíte do toho sami zabalit dotazy náchylné k uváznutí):

# 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. Existuje v SQL Server Management Studio ekvivalent SELECT ... INTO OUTFILE?

  2. Základy správy schémat PostgreSQL

  3. MySQL – ruské znaky se zobrazují nesprávně

  4. MYSQL - Nelze vytvořit externí klíč