Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thử lại bế tắc ActiveRecord3

Tôi thậm chí còn không biết có một plugin để làm điều này :)

Đây là những gì chúng tôi sử dụng (nhưng bạn phải tự bao gồm các truy vấn dễ gặp bế tắc trong đó):

# 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. LEN () Tương đương trong MySQL là gì?

  2. Cách nhanh nhất để kết xuất đối tượng từ điển Python (dict) vào một bảng MySQL?

  3. Cách lưu trữ tốt nhất thông tin người dùng và thông tin đăng nhập và mật khẩu của người dùng

  4. Batch tệp để kết nối mysql và chạy lệnh

  5. Mối quan hệ 1-1 trong MyBatis