[Zope-DB] Thread question
Bogdan M. Maryniuck
b.maryniuk at forbis.lt
Wed Jun 23 09:26:23 EDT 2004
Hi.
This is probably wrong maillist, but this is only I can subscribe...
Problem:
I have an object, called "pdfBurner" and I need do in PythonScript
something like this:
---------------8<------------------
context.pdfBurner.burn(filename = 'test.pdf')
return "PDF burner in process"
---------------8<------------------
This means, you call this PythonScript and it calls burn() method which
starts separate thread and *immediately* exits to show use the message
"PDF burner in process". OK, but it works for me only once. Next time
it sais:
File "/opt/Zope-2.6.2/lib/python/ZODB/Connection.py", line 540, in setstate
raise RuntimeError(msg)
RuntimeError: Shouldn't load state for '\x00\x00\x00\x00\x00\x04\xf9\x95' when the connection is closed
OK, I know what it means. It appears exactly when I do:
def parseXML(self, xmlDoc):
return xml.dom.minidom.parseString(xmlDoc) # <-- here
Maybe I should parse XML in other way? Or not? But if I do:
class MyProduct(....):
lock = ThreadLock.allocate_lock()
...
self.lock.aquire()
...
self.lock.release()
...my PythonScript waits until burn() finish, than shows the message.
Since PDF creation takes not-so-short time, browser usually fails with
"Site timeout" -- that's why I exactly want background threads! I don't
care how long my child thread will run, but I care _immediately_ response
to user for PDF in process and he can go drink coffee or something. ;-)
Question: how to run burn process in the Thread, but avoid this exception?
Maybe there is some correct workaround? Can anybody help me here?
Thank you much for advance!
--
Regards, Bogdan M. Maryniuk
Developer. Forbis UAB
More information about the Zope-DB
mailing list