Python实现SQLite队列,方便并发处理

介绍了一种基于Python实现的SQLite队列,可以方便地处理SQLite并发操作。通过使用队列,可以将SQLite操作转为串行化的方式,避免多个线程同时访问和修改数据库,提高了程序的执行效率。以下是示例代码:

import sqlite3
from queue import Queue

class SqliteQueue:
    def __init__(self, db_path):
        self.db_path = db_path
        self.queue = Queue()
        self.conn = None
        self.cursor = None

    def connect(self):
        if not self.conn:
            self.conn = sqlite3.connect(self.db_path)
            self.cursor = self.conn.cursor()

    def close(self):
        if self.conn:
            self.conn.close()
            self.conn = None
            self.cursor = None

    def execute(self, sql, args=None):
        self.queue.put((sql, args))

    def commit(self):
        if self.conn and not self.queue.empty():
            self.cursor.execute('BEGIN TRANSACTION')
            while not self.queue.empty():
                sql, args = self.queue.get()
                self.cursor.execute(sql, args)
            self.conn.commit()
            self.queue = Queue()

zip 文件大小:10.43KB