Re: [SMARTY] Cache cleanup
| From: | Monte Ohrt | Date: | Fri, 14 Jun 2002 17:07:47 +0000 |
| Subject: | Re: [SMARTY] Cache cleanup | ||
| References: | 1 | Groups: | php.smarty.general |
| Request: | Send a blank email to php-smarty-general+get-4861@lists.php.net to get a copy of this message | ||
The external file has to know your environment: where template_dir and cache_dir is for example. It basically needs the smarty object passed to it, so it would be better to include the script and call a function. But then we're back to the processing time issue.
Gary Loescher wrote:
-- Monte Ohrt <monte@ispi.net> Director of Technology, ispi Inc.I should have seen this coming :-) OK, but when the file check _does_ happen, it will cause noticable lag time... unless we can make the script release it's connection to the browser and then perform the cleanup and exit. I don't know if that is possible (?)I think it might be possible to write the cache cleanup as an external file and execute it with system() or popen(), as long as you redirect stdout to a file (or /dev/null, etc) PHP won't wait for the command to finish executing and will continue page processing normally. Hmm... possible file-locking problems if cleanup is occurring while Smarty is accessing the cache?* Should both cache and compile files be periodically cleaned?I would vote for yes with an option for one, the other, or both.* Should this be part of the engine, or an optional plugin?Plugin, since some will want to use a cronjob/batchfile to explicitly control cleanup behavior. But for those that don't want to worry about it, optional plugin would be great, I think. Gary Loescher wrote:What about setting up a cache cleanup probability variable (ala PHP gc_probability for sessions) that determines when Smarty will clear the cache upon instantiation? Gary -----Original Message----- From: Monte Ohrt [mailto:monte@ispi.net] Sent: Friday, June 14, 2002 11:06 AM To: Peter Bowyer Cc: Ivo Jansch; smarty-general@lists.php.net Subject: Re: [SMARTY] Cache cleanup Cleaning cache files would be a considerable overhead. For _every_cachefile (recursively) it has to open file, extract timestamp, testagainstthe current time and unlink if necessary. It would definately add alotof execution time to the engine. It would be much more efficient to do this via cron: find /path/to/cache -atime +2 -exec rm -f {} \; This doesn't interefere with Smarty execution time either. Windows users would need a different method, maybe a php script to periodically run? Peter Bowyer wrote:At 10:47 14/06/02 -0500, Monte Ohrt wrote:It won't happen automatically. You must do it yourself periodically, either with clear_cache or directly.Shouldn't Smarty take care of cleaning out old files? Peter -- Maple Design - quality web design and programming http://www.mapledesign.co.uk