(self, statement, arguments=None)
| 103 | self.connection.commit() |
| 104 | |
| 105 | def execute(self, statement, arguments=None): |
| 106 | with self.lock: |
| 107 | while True: |
| 108 | try: |
| 109 | if arguments: |
| 110 | self.cursor.execute(statement, arguments) |
| 111 | else: |
| 112 | self.cursor.execute(statement) |
| 113 | except sqlite3.OperationalError as ex: |
| 114 | if "locked" not in getSafeExString(ex): |
| 115 | raise |
| 116 | else: |
| 117 | time.sleep(1) |
| 118 | else: |
| 119 | break |
| 120 | |
| 121 | if statement.lstrip().upper().startswith("SELECT"): |
| 122 | return self.cursor.fetchall() |
| 123 | |
| 124 | def init(self): |
| 125 | self.execute("CREATE TABLE IF NOT EXISTS logs(id INTEGER PRIMARY KEY AUTOINCREMENT, taskid INTEGER, time TEXT, level TEXT, message TEXT)") |
no test coverage detected