Tôi có một chương trình Python sử dụng mô-đun "phân luồng". Cứ sau mỗi giây, chương trình của tôi bắt đầu một chuỗi mới tìm nạp một số dữ liệu từ web và lưu trữ dữ liệu này vào ổ cứng của tôi. Tôi muốn sử dụng sqlite3 để lưu trữ các kết quả này, nhưng tôi không thể làm cho nó hoạt động. Vấn đề dường như là về dòng sau:
conn = sqlite3.connect("mydatabase.db")
- Nếu tôi đặt dòng mã này bên trong mỗi luồng, tôi nhận được Lỗi OperationalError cho tôi biết rằng tệp cơ sở dữ liệu đã bị khóa. Tôi đoán điều này có nghĩa là một luồng khác có mydatabase.db mở thông qua kết nối sqlite3 và đã khóa nó.
- Nếu tôi đặt dòng mã này trong chương trình chính và chuyển đối tượng kết nối (conn) cho mỗi luồng, tôi nhận được Lỗi Lập trình, nói rằng các đối tượng SQLite được tạo trong một luồng chỉ có thể được sử dụng trong cùng một luồng đó.
Trước đây, tôi đã lưu trữ tất cả các kết quả của mình trong các tệp CSV và không gặp bất kỳ sự cố khóa tệp nào trong số này. Hy vọng rằng điều này sẽ khả thi với sqlite. Có ý kiến gì không?