0

Python 2.7 と SQLite3 データベースを使用しています。時間がかかる可能性があるデータベースで更新クエリを実行したいと考えています。一方、ユーザーが待たなければならないことは望ましくありません。したがって、データベースの更新を行うために新しいスレッドを開始したいと思います。

Python はエラーをスローします。スレッドが終了するのを待たずに、独自のスレッドで更新を行うようにデータベースに指示する効果的な方法はありますか?

行 39、実行中 ProgrammingError: スレッドで作成された SQLite オブジェクトは、同じスレッドでのみ使用できます。オブジェクトはスレッド ID 3648 で作成され、これはスレッド ID 6444 です

例に関する限り、私は Anki アドオンを作成しようとしています。そのエラーを生成するアドオン コードは次のとおりです。

from anki.sched import Scheduler
import threading

def burying(self, card):
    buryingThread = threading.Thread(target = self._burySiblings, args = (card,))
    buryingThread.start()

def newGetCard(self):
    "Pop the next card from the queue. None if finished."
    self._checkDay()
    if not self._haveQueues:
        self.reset()
    card = self._getCard()
    if card:
        burying(self, card)
        self.reps += 1
        card.startTimer()
        return card

__oldFunc = Scheduler.getCard
Scheduler.getCard = newGetCard
4

1 に答える 1

0

celery プロジェクトを確認してください。django を使用している場合は、さらに簡単になります www.celeryproject.org

于 2013-11-10T19:59:32.407 に答える