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