sql >> Databasteknik >  >> RDS >> Mysql

RSS-generator med cachningsfunktion

Först, för att lägga till cachning i skriptet , det verkar som om det inte skulle vara så svårt att lägga till Zend_Feed och Zend_Cache tillsammans - eller bara slå in ditt nuvarande generationsskript med Zend_Cache .

Ställ bara in cachen med din livstid:

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

Kontrollera sedan om cachen fortfarande är giltig:

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

//output $feed

Jag vet inte hur du skapar din RSS, men du kan importera en arraystruktur till Zend_Feed :

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

Naturligtvis det bästa sättet kan vara att bara använda din nuvarande flödesgenerator och spara utdata till en fil . Använd den filen som RSS-flöde och använd sedan cron/web hooks/queue/whatever för att generera den statiska filen. Det skulle vara enklare och använda mindre resurser än att låta generationsskriptet göra cachningen.

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

Nu är flödeslänken /feed.rss , och du kör bara feedGen.php när den behöver uppdateras. Att servera den statiska filen (inte ens tolkad av php) betyder mindre för din server att göra.




  1. Lagra JSON i databasen kontra att ha en ny kolumn för varje nyckel

  2. Databaskorrpution i MS Access och hur man handskas

  3. Hur höjer man ett undantag i en trigger? Finns det något sätt att göra detta?

  4. MySQL &kapslad uppsättning:långsam JOIN (använder inte index)