Mysql
 sql >> база данни >  >> RDS >> Mysql

Повторен опит за блокиране на ActiveRecord3

Дори не знаех, че има плъгин за това :)

Ето какво използваме (но трябва сами да обвиете в него заявки, склонни към безизходица):

# 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. GROUP BY с MAX дата

  2. Осоляване на хешовете ми с PHP и MySQL

  3. Добавяне на само една стойност към таблицата в sql

  4. Контрол на версията на базата данни за MySQL

  5. MAX() – Намерете максималната стойност в колона в MySQL