Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Gerador RSS com função de cache


Primeiro, para adicionar cache ao script , parece que não seria muito difícil colocar Zend_Feed e Zend_Cache juntos - ou apenas envolva seu script de geração atual com Zend_Cache .

Basta configurar o cache com o seu tempo de vida:
$frontendOptions = array(
  'lifetime' => 7200, // cache lifetime of 2 hours
  'automatic_serialization' => true
);

Em seguida, verifique se o cache ainda é válido:
if(!$feed = $cache->load('myfeed')) {
  //generate feed
  $cache->save($feed, 'myfeed');
}

//output $feed

Não sei como você forma seu RSS, mas você pode importar uma estrutura de array para Zend_Feed :
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');

Claro que a melhor maneira pode ser apenas usar seu gerador de feeds atual e salvar a saída em um arquivo . Use esse arquivo como o feed RSS e, em seguida, use cron/web hooks/queue/whatever para gerar o arquivo estático. Isso seria mais simples e usaria menos recursos do que ter o script de geração fazendo o cache.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);

Agora o link do feed é /feed.rss , e você apenas executa feedGen.php sempre que precisar ser atualizado. Servir o arquivo estático (nem mesmo analisado pelo php) significa menos para o seu servidor.