2017-04-01 2 views
0

Ich entwickle eine Chatbot-Chat-Seite, die eine DB.sqlit3 als eine Wissensdatenbank für die Beantwortung von Benutzerfragen verwendet.Außerdem haben Sie eine Admin-Chat-Seite für den Administrator neue Frage hinzufügen und antworten zu DB.sqlit3 durch chatting.So, dafür habe ich 2 Python-Skript (eines für den Chatbot Chatten und eins für den Admin-Chat) jeweils mit seinem eigenen HTML und JS.DataBase ist in Django Projekt gesperrt

Die chatbot Seite im Chat funktioniert gut, aber irgendwann, wenn ich die Admin-Chat-Seite nach laufen und versuchen, neuen Daten (Fragen und Wiedergabe) einzufügen, um DB.sqlit3 i erhalten:

The database is locked 

Danke,

PS: ich bin mit 10 Django, python3, sqlite3, Web-Server Fraktion

Antwort

0

SQLite ist nicht für die Produktion. Es verwendet eine einzige globale Sperre auf Datenbankebene. Nur ein Thread oder Prozess kann gleichzeitig darauf zugreifen. Das ist nicht das, was du in der Produktion willst und definitiv nicht für einen Chat-Server. Schau in einen Schlüsselwertspeicher wie Redis für den Chat und nutze eine bessere DB für alles andere.

+0

danke, einige sagen, dass die Umstellung auf mysql das Problem lösen wird, weil es eine bessere Parallelität hat. Auch, was Sie meinen, ist, dass ich für die Konversation Redis verwenden kann und für die Aktualisierung der Chatbot-Datenbank kann ich eine andere DB verwenden – user7649420

+0

Eine Datenbank ist kein gutes Werkzeug für den Chat. Etwas wie ein schneller Schlüsselwertspeicher wie Reddis wäre besser. Aber wenn Sie gerade anfangen und etwas lernen möchten, können Sie es mit der db tun. – kagronick

Verwandte Themen