Ich habe ein Programm, dass mehrere Computer ausgeführt werden, die alle aus der gleichen SQLite-Datenbank lesen/schreiben müssen. Jedes Programm führt eine Aktion für eine Datei aus und fordert einen "verfügbaren" Dateinamen aus einer Liste an, die in einer SQLite-Tabelle gespeichert ist. Es wird höchstens 6-10 Benutzer geben. Pseudo-Code wäre ...Python 2.7: SQlite und Parallelität über mehrere Computer
con = sqlite.connection(db,timeout=60)
filename = select file from tablename limit 1;
update tablename set status ="busy" where file = filename;
<..perform action. takes 2-5 minutes..>
update tablename set status ="Finished" where file = filename;
repeat
So jede Transaktion ist sehr schnell, aber leider bin ich noch läuft in „db ist gesperrt“ Fragen, auch wenn ich die Verbindung Timeout wirklich hoch. Ich habe auf dem asynchronen vfs in apsw gelesen, aber es klingt wie der Warteschlangenmanager nur lokal auf einem Computer ist. Irgendwelche Tipps zum weiteren Vorgehen?
EDIT: Ich sollte hinzufügen, ich bin unter einer IT-Beschränkung und kann nicht einen richtigen SQL-Server an meinem Schreibtisch einrichten.
Genau dafür sollte SQLite nicht verwendet werden. Verwenden Sie einen geeigneten Datenbankserver wie PostgreSQL. –
Ich verstehe, aber IT-Einschränkungen werden es nicht zulassen – njfrazie