Ich will jetzt möglichst schnell von mod_python + direktem mysql zu wsgi/colubrig + sqlobject konvertieren und allmählich gibtsa auch sowas wie nen tatsächlichen Zeitdruck bei der Sache.
Dummerweise meckert SQLObject aber rum, ich solle eine Verbindung nur innerhalb des selben threads benutzen.
Da ich selbst aber kjein zusätzliches threading implementiert habe, muss das ein grundsätzlicheres Problem sein.
Ich habe extra process_request überschrieben und weise da dem connection-hub jedes mal eine frische Verbindung zu:
Code: Alles auswählen
def process_request(self):
dbmfile = join(getcwd(), 'data.dbm')
sqlhub.threadConnection = connectionForURI('sqlite://' + dbmfile)
r = super(Application, self).process_request()
return r
Code: Alles auswählen
... return iter(list(self.lazyIter()))
File "/home/asmanian/uniDB/sqlobject/sresults.py", line 157, in lazyIter
return conn.iterSelect(self)
File "/home/asmanian/uniDB/sqlobject/dbconnection.py", line 361, in iterSelect
select, keepConnection=False)
File "/home/asmanian/uniDB/sqlobject/inheritance/iteration.py", line 10, in __init__
super(InheritableIteration, self).__init__(dbconn, rawconn, select, keepConnection)
File "/home/asmanian/uniDB/sqlobject/dbconnection.py", line 683, in __init__
self.cursor = rawconn.cursor()
ProgrammingError: SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 16386 and this is thread id 65538
Weiß jemand, was da vor sich geht und kann es mir erklären oder mir sonst irgdnwie helfen, dieses Problem zu lösen?
Es eilt wirklich ein wenig :-/