Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ponowna próba zakleszczenia ActiveRecord3

Nawet nie wiedziałem, że istnieje wtyczka do tego :)

Oto czego używamy (ale musisz sam zawrzeć w nim zapytania podatne na zakleszczenie):

# 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać rekordy bieżącego miesiąca w MySQL?

  2. Różnica dat MySQL

  3. Właściwy sposób na przechowywanie strefy czasowej w bazie danych?

  4. PHP/MySQL - jak automatycznie wygenerować link do usunięcia wiersza w już wygenerowanej automatycznie tabeli?

  5. Jak wygenerować unikalną losową wartość dla każdego użytkownika w laravelu i dodać ją do bazy danych?