Trước tiên, để thêm bộ nhớ đệm vào script , có vẻ như sẽ không quá khó để đặt Zend_Feed
và Zend_Cache
cùng nhau - hoặc chỉ gói tập lệnh thế hệ hiện tại của bạn bằng Zend_Cache
.
Chỉ cần thiết lập bộ nhớ cache với thời gian tồn tại của bạn:
$frontendOptions = array(
'lifetime' => 7200, // cache lifetime of 2 hours
'automatic_serialization' => true
);
Sau đó, kiểm tra xem bộ nhớ đệm có còn hợp lệ không:
if(!$feed = $cache->load('myfeed')) {
//generate feed
$cache->save($feed, 'myfeed');
}
//output $feed
Tôi không biết bạn tạo RSS của mình như thế nào, nhưng bạn có thể nhập cấu trúc mảng vào Zend_Feed
:
$rssFeedFromArray = Zend_Feed::importArray($array, 'rss');
Tất nhiên là cách tốt nhất có thể chỉ sử dụng trình tạo nguồn cấp dữ liệu hiện tại của bạn và lưu đầu ra vào một tệp . Sử dụng tệp đó làm nguồn cấp RSS, sau đó sử dụng cron / web hooks / queue / anything để tạo tệp tĩnh. Điều đó sẽ đơn giản hơn và sử dụng ít tài nguyên hơn so với việc tập lệnh tạo thực hiện bộ nhớ đệm.
//feedGen.php
//may require some output buffering if the feed generator outputs directly
$output = $myFeedGenerator->output();
file_put_contents('feed.rss', $output);
Bây giờ liên kết nguồn cấp dữ liệu là /feed.rss
và bạn chỉ cần chạy feedGen.php
bất cứ khi nào nó cần được làm mới. Cung cấp tệp tĩnh (thậm chí không được phân tích cú pháp bằng php) có nghĩa là máy chủ của bạn ít phải làm hơn.