Mysql
 sql >> Datenbank >  >> RDS >> Mysql

RSS-Generator mit Caching-Funktion

Erstens, um Caching zum Skript hinzuzufügen , scheint es nicht allzu schwer zu sein Zend_Feed und Zend_Cache zusammen - oder verpacken Sie einfach Ihr Skript der aktuellen Generation mit Zend_Cache .

Richten Sie einfach den Cache mit Ihrer Lebenszeit ein:

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

Prüfen Sie dann, ob der Cache noch gültig ist:

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

//output $feed

Ich weiß nicht, wie Sie Ihr RSS erstellen, aber Sie können importieren Sie eine Array-Struktur nach Zend_Feed :

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

Natürlich der beste Weg kann darin bestehen, einfach Ihren aktuellen Feed-Generator zu verwenden und die Ausgabe in einer Datei zu speichern . Verwenden Sie diese Datei als RSS-Feed und verwenden Sie dann cron/web hooks/queue/whatever, um die statische Datei zu generieren. Das wäre einfacher und würde weniger Ressourcen verbrauchen, als wenn das Generierungsskript das Caching übernimmt.

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

Jetzt lautet der Feed-Link /feed.rss , und Sie führen einfach feedGen.php aus wann immer es aufgefrischt werden muss. Das Bereitstellen der statischen Datei (nicht einmal von PHP geparst) bedeutet weniger Arbeit für Ihren Server.