sql >> Base de Datos >  >> RDS >> Mysql

Generador de RSS con función de almacenamiento en caché

Primero, para agregar almacenamiento en caché al script , parece que no sería demasiado difícil poner Zend_Feed y Zend_Cache juntos, o simplemente envuelva su secuencia de comandos de generación actual con Zend_Cache .

Simplemente configure el caché con su vida:

$frontendOptions = array(
  'lifetime' => 7200, // cache lifetime of 2 hours
  'automatic_serialization' => true
);

Luego verifique si el caché sigue siendo válido:

if(!$feed = $cache->load('myfeed')) {
  //generate feed
  $cache->save($feed, 'myfeed');
}

//output $feed

No sé cómo forma su RSS, pero puede importar una estructura de matriz a Zend_Feed :

$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');

Por supuesto, la mejor manera puede ser simplemente usar su generador de feeds actual y guardar el resultado en un archivo . Use ese archivo como fuente RSS, luego use cron/web hooks/queue/whatever para generar el archivo estático. Eso sería más simple y usaría menos recursos que hacer que el script de generación haga el almacenamiento en caché.

//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);

Ahora el enlace del feed es /feed.rss , y simplemente ejecuta feedGen.php cada vez que necesite ser actualizado. Servir el archivo estático (ni siquiera analizado por php) significa menos trabajo para su servidor.