sql >> Database >  >> RDS >> Mysql

RSS-generator met caching-functie

Ten eerste, om caching toe te voegen aan het script , lijkt het niet zo moeilijk om Zend_Feed en Zend_Cache samen - of verpak je huidige generatie script gewoon met Zend_Cache .

Stel de cache gewoon in met je leven:

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

Controleer vervolgens of de cache nog geldig is:

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

//output $feed

Ik weet niet hoe je je RSS vormt, maar je kunt importeer een matrixstructuur naar Zend_Feed :

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

Natuurlijk de beste manier kan zijn om gewoon uw huidige feedgenerator te gebruiken en de uitvoer op te slaan in een bestand . Gebruik dat bestand als de RSS-feed en gebruik vervolgens cron/web hooks/queue/whatever om het statische bestand te genereren. Dat zou eenvoudiger zijn en minder bronnen gebruiken dan het generatiescript de caching te laten doen.

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

Nu is de feedlink /feed.rss , en je draait gewoon feedGen.php wanneer het moet worden ververst. Het aanbieden van het statische bestand (zelfs niet geparseerd door php) betekent minder voor uw server om te doen.




  1. Hoe u identiteitskolomwaarden kunt krijgen zonder de naam van de identiteitskolom te vermelden in Select - SQL Server / T-SQL-zelfstudie, deel 46

  2. Onjuist sleutelbestand voor tabel '/tmp/#sql_3c51_0.MYI' probeer het te repareren

  3. PHP en MySQL optionele WHERE voorwaarden

  4. MySQL:Inner join vs Where