D'abord, ajouter la mise en cache du script , il semble que ce ne serait pas trop difficile à mettre Zend_Feed
et Zend_Cache
ensemble - ou tout simplement envelopper votre script en cours de génération avec Zend_Cache
.
configuration Juste le cache avec votre vie:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
vérifier ensuite si le cache est toujours valide:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Je ne sais pas comment vous formez votre flux RSS, mais vous pouvez import an array structure to Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Bien sûr, la meilleure façon peut être juste utiliser votre générateur de flux actuel et enregistrer la sortie dans un fichier. Utilisez ce fichier comme flux RSS, puis utilisez cron/web hooks/queue/whatever pour générer le fichier statique. Cela serait plus simple, et utiliserait moins de ressources, que de faire en sorte que le script de génération fasse la mise en cache.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Maintenant, le lien d'alimentation est /feed.rss
, et que vous exécutez juste feedGen.php
chaque fois qu'il a besoin d'être rafraîchi. Servir le fichier statique (même pas analysé par php) signifie moins pour votre serveur à faire.