Mysql
 sql >> база данни >  >> RDS >> Mysql

RSS генератор с функция за кеширане

Първо, да добавите кеширане към скрипта , изглежда, че няма да е трудно да се постави Zend_Feed и Zend_Cache заедно - или просто обвийте текущото си поколение скрипт с Zend_Cache .

Просто настройте кеша с целия си живот:

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

След това проверете дали кешът все още е валиден:

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

//output $feed

Не знам как формирате своя RSS, но можете да импортирайте структура на масив в Zend_Feed :

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

Разбира се, понай-добрият начин може да е просто да използвате текущия си генератор на емисии и да запишете резултата във файл . Използвайте този файл като RSS емисия, след това използвайте cron/web hooks/queue/каквото и да е, за да генерирате статичния файл. Това би било по-просто и би използвало по-малко ресурси, отколкото скриптът за генериране да извършва кеширането.

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

Сега връзката към емисията е /feed.rss , и просто стартирате feedGen.php всеки път, когато трябва да се освежи. Обслужването на статичния файл (дори не анализиран от php) означава по-малко за вашия сървър.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Синтаксисът на MYSQL, който не се оценява, не е равен на при наличие на NULL

  2. MySql или PHP функция за преобразуване на дължина и ширина в десетични градуси

  3. Как да получите данни за последните 12 месеца в MySQL

  4. Дизайн на БД:една голяма БД за всички клиенти или много малки БД

  5. Как да изградя следващите и предишни връзки с php?