Mysql
 sql >> Database >  >> RDS >> Mysql

Generatore RSS con funzione di memorizzazione nella cache

Innanzitutto, per aggiungere la memorizzazione nella cache allo script , sembra che non sarebbe troppo difficile inserire Zend_Feed e Zend_Cache insieme - o semplicemente avvolgi lo script della generazione attuale con Zend_Cache .

Basta configurare la cache con la tua vita:

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

Quindi controlla se la cache è ancora valida:

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

//output $feed

Non so come formi il tuo RSS, ma puoi importa una struttura di array in Zend_Feed :

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

Ovviamente il modo migliore potrebbe essere semplicemente utilizzare il generatore di feed corrente e salvare l'output in un file . Usa quel file come feed RSS, quindi usa cron/web hooks/queue/whatever per generare il file statico. Sarebbe più semplice e consumerebbe meno risorse rispetto al fatto che lo script di generazione esegua la memorizzazione nella cache.

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

Ora il link al feed è /feed.rss , ed esegui semplicemente feedGen.php ogni volta che ha bisogno di essere rinfrescato. Servire il file statico (nemmeno analizzato da php) significa meno da fare per il tuo server.