Po pierwsze, dodać pamięć podręczną do skryptu , wygląda na to, że nie byłoby zbyt trudno umieścić Zend_Feed
i Zend_Cache
razem - lub po prostu zapakuj skrypt obecnej generacji za pomocą Zend_Cache
.
Po prostu skonfiguruj pamięć podręczną na całe życie:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Następnie sprawdź, czy pamięć podręczna jest nadal poprawna:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Nie wiem, jak tworzysz swój RSS, ale możesz zaimportuj strukturę tablicy do Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Oczywiście najlepszy sposób może być po prostu użycie obecnego generatora kanałów i zapisanie danych wyjściowych do pliku . Użyj tego pliku jako źródła RSS, a następnie użyj crona/web hooks/queue/cokolwiek, aby wygenerować plik statyczny. Byłoby to prostsze i zużywałoby mniej zasobów niż posiadanie skryptu generowania do buforowania.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Teraz link do kanału to /feed.rss
, i po prostu uruchamiasz feedGen.php
ilekroć wymaga odświeżenia. Udostępnianie pliku statycznego (nawet nie przetworzonego przez php) oznacza mniej dla twojego serwera.