Project

General

Profile

Feature #5715

Updated by Carsten Rose over 3 years ago

Das rendern (zusammensetzen aus mehreren Quellen) eines PDF kann lange dauern. Vorschlag fuer ein Caching: 

 * Es gibt ein Cache Verzeichniss, fileadmin/protected/cache. 
 * Beim zusammenbauen (Parameter in _link) kann neu ein Caching Token mit (0-n) 'tablename/id/column'-Tripples (falls kein 'columnname' angegeben ist, wird 'modified' genommen ) angegeben werden. 
 * Von allen Source Reference Angaben (filename, url) wird ein MD5 Hash gebaut. In dem Hash ist kein Timestamp enthalten, denn dann wuerde die zuletzt gecachte Datei nicht ueberschrieben werden bei einem Update. 
 * Unter dem <cache Verzeichnis>/<MD5> wird die fertig gerenderte Datei gespeichert. 
 * Von allen Filename wird der 'modified'-Timestamp, und die Timestamps der aufgeloesten 'tablename/id/column'-Tripple, verglichen mit dem modified timestamp der Datei '<cache Verzeichnis>/<MD5>'  
 * Gibt es min. einen Timestamp der neuer ist als der der gerenderten Datei, wird die Datei neu gebaut. 

 Auf Vorrat produzieren: 
 * Es gibt ein Token im Link, welches beim rendern dazu fuehrt das das PDF auf Vorrat (im Cache Verzeichnis) gebaut wird.  
 * Das Render passiert am besten asynchron, gesteuert ueber rabittmq oder mqtt (#5851) (##5851) 

Back