[Zope] Polling a folder
Dieter Maurer
dieter@handshake.de
Tue, 3 Sep 2002 21:48:18 +0200
GimsMail writes:
> I have tried creating a polling object that runs a loop in a thread and does
> the work I want it to do. I do this with a Zope Object inheriting from
> SimpleItem.SimpleItem. I invoke this object's run method in a thread with
> thread.start_new_thread(self.run,()). Zope doesn't seem too happy if I
> inherit from SimpleItem.SimpleItem and threading.Thread at the same time!
You cannot access a persistent object from a different thread than it
was loaded in.
You can do the following:
* pass the object path into your thread method: "path"
* Inside the thread use:
from Zope import app; root= app()
object= app.unrestrictedTraverse(path)
Now, use "object" as you like.
If it changes something, do not forget to call
"get_transaction().commit()".
Please read the "zodb3" documentation. Otherwise, you will
meat more surprises...
Dieter