Saya memiliki program Python yang menggunakan modul "threading". Setiap detik sekali, program saya memulai utas baru yang mengambil beberapa data dari web, dan menyimpan data ini ke hard drive saya. Saya ingin menggunakan sqlite3 untuk menyimpan hasil ini, tetapi saya tidak dapat membuatnya berfungsi. Masalahnya tampaknya tentang baris berikut:
conn = sqlite3.connect("mydatabase.db")
- Jika saya meletakkan baris kode ini di dalam setiap utas, saya mendapatkan OperationalError yang memberi tahu saya bahwa file database terkunci. Saya kira ini berarti thread lain telah membuka mydatabase.db melalui koneksi sqlite3 dan telah menguncinya.
- Jika saya meletakkan baris kode ini di program utama dan meneruskan objek koneksi (conn) ke setiap utas, saya mendapatkan ProgrammingError, yang mengatakan bahwa objek SQLite yang dibuat di utas hanya dapat digunakan di utas yang sama.
Sebelumnya saya menyimpan semua hasil saya dalam file CSV, dan tidak mengalami masalah penguncian file ini. Mudah-mudahan ini bisa dilakukan dengan sqlite. Ada ide?