Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL/SQLAlchemy के लिए गतिरोध पर पुनः प्रयास करें

आप वास्तव में Session . के साथ ऐसा नहीं कर सकते बाहर से। Session आंतरिक रूप से इसका समर्थन करना होगा। इसमें बहुत सारे निजी राज्य को बचाना शामिल होगा, इसलिए यह आपके समय के लायक नहीं हो सकता है।

मैंने निचले स्तर के SQLAlchemy Core इंटरफ़ेस के पक्ष में अधिकांश ORM सामान को पूरी तरह से हटा दिया। उस (या किसी भी dbapi इंटरफ़ेस) का उपयोग करके आप अपने retry_on_deadlock_decorator का तुच्छ रूप से उपयोग कर सकते हैं डेकोरेटर (उपरोक्त प्रश्न देखें) एक पुन:प्रयास-जागरूक बनाने के लिए db.execute आवरण।

 @retry_on_deadlock_decorator
 def deadlock_safe_execute(db, stmt, *args, **kw):
     return db.execute(stmt, *args, **kw)

और इसके बजाय

 db.execute("UPDATE users SET active=0")

आप करते हैं

 deadlock_safe_execute(db, "UPDATE users SET active=0")

जो गतिरोध होने पर स्वचालित रूप से पुनः प्रयास करेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mySQL डेटाबेस में मौजूदा उपयोगकर्ता की जांच करने का सबसे अच्छा तरीका?

  2. MySQL में INNER JOIN के साथ SQL फ़ंक्शन का उपयोग कैसे करें?

  3. एसक्यूएल:एक जटिल चयन से अद्यतन

  4. सीक्वेलाइज़:कॉनकैट फ़ील्ड्स WHERE LIKE क्लॉज़

  5. लार्वेल हिडन फील्ड ऑन कंडीशन