0

私の知る限り、経験上django、スレッドのデータベース接続を共有することはできません。

私は周りを検索して、この問題の2つの解決策を見つけました。

  1. SQL関連するDBMSドライバーを直接使用して直接接続を使用する。
  2. 使用sqlalchmenyとそのセッションポーリング。

本当に他の方法はありませんか?djangoスレッドの新しい接続を作成するように依頼することはできません(私にとっては単純で便利なことのように聞こえます!)

ありがとう。

4

1 に答える 1

1

DBのスレッドセーフの問題は、接続とは何の関係もありません。これは、2つのスレッドが同じデータを同時に変更しようとした場合、または一方が書き込みを試み、もう一方が読み取りを試みた場合です。これを防ぐには、スレッドの1つがテーブルで何かを行う必要があるときに、テーブルをロックする必要があります。Django 1.4+ですばやく簡単に使用する方法はselect_for_update、を使用することです。これにより、操作を実行するまでテーブルがロックされますupdate

于 2012-08-20T14:20:58.790 に答える