[Zope] Problem with constructTransientObjectContainer - Resolved
Jonathan
dev101 at magma.ca
Wed Jun 21 07:15:39 EDT 2006
----- Original Message -----
From: "Chris Withers" <chris at simplistix.co.uk>
To: "Jonathan" <dev101 at magma.ca>
Cc: "Chris McDonough" <chrism at plope.com>; <zope at zope.org>
Sent: Wednesday, June 21, 2006 6:25 AM
Subject: Re: [Zope] Problem with constructTransientObjectContainer -
Resolved
> Jonathan wrote:
>>
>> folder = self.restrictedTraverse('Coz/TempImages')
>> constructTransientObjectContainer(folder, 'GarbageCollector',
>> timeout_mins=10, limit=0,
>> delNotification=BASEFOLDER+'DeleteTempImage')
>
> Be careful, I see a lot of hints in there that make me nervous. I'm of the
> opinion that if you think you need to use a TOC, you're probably doing
> something wrong...
The use case: the zodb contains small image objects which need to have a
custom overlay (done with PIL) before being presented to the user. Each
overlay is unique. Each customized image is only shown to a single user
once, then it is discarded. In order to eliminate many writes to the zodb
(disk), I have decided to put the customized images into a temporary folder
(RAM). In order to delete the customized images I have created a TOC to act
as a 'GarbageCollector'. Whenever a customized image is written to the
temporary folder, an entry containing the image object id is placed in the
TOC. When the TOC 'times-out' an entry a script (external method) acquires
the object id from the TOC entry and deletes the customized image from the
temporary folder.
This seems to be working... so far ;-)
What 'hints' are making you nervous? Is there a 'better' way to do this?
Jonathan
More information about the Zope
mailing list