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. ProxySQL ऑडिट लॉग को समझना

  2. MySQL - CASE में कई WHEN स्थितियों का संयोजन

  3. MySQL में सूची आइटम की स्थिति कैसे वापस करें

  4. Laravel में कई और संबंधित हैंपैरामीटर

  5. अद्यतन दिनांक + एक वर्ष mysql . में