Threadsafe使用django访问数据库的方法

时间:2012-08-20 13:35:45

标签: database django thread-safety sharing

据我所知和地狱,经验丰富的是无法为线程共享django db连接。

我已经四处寻找并找到了解决此问题的两种解决方案:

  1. 直接使用相关DBMS驱动程序直接使用SQL连接。
  2. 使用sqlalchmeny及其会话民意调查。
  3. 还有其他方法吗?是不是可以要求django为线程创建新的连接(听起来对我来说简单而有用!)

    感谢。

1 个答案:

答案 0 :(得分:1)

DB的线程安全问题与连接无关;当两个线程试图同时改变同一条数据时,甚至一个尝试写入而另一个试图读取时。为了防止这种情况,您只需要在其中一个线程需要对其执行某些操作时锁定该表。使用Django 1.4+的快捷方法是使用select_for_update,这将锁定表,直到您执行update操作。