Merge pull request #1851 from annando/1508-caching
Now you can define the duration of the cache entries
This commit is contained in:
commit
4ecc81d9b7
9 changed files with 33 additions and 22 deletions
11
boot.php
11
boot.php
|
@ -19,7 +19,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDICA_CODENAME', 'Lily of the valley');
|
define ( 'FRIENDICA_CODENAME', 'Lily of the valley');
|
||||||
define ( 'FRIENDICA_VERSION', '3.4.1' );
|
define ( 'FRIENDICA_VERSION', '3.4.1' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1187 );
|
define ( 'DB_UPDATE_VERSION', 1188 );
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||||
|
|
||||||
|
@ -84,6 +84,15 @@ define ( 'LOGGER_DEBUG', 2 );
|
||||||
define ( 'LOGGER_DATA', 3 );
|
define ( 'LOGGER_DATA', 3 );
|
||||||
define ( 'LOGGER_ALL', 4 );
|
define ( 'LOGGER_ALL', 4 );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cache levels
|
||||||
|
*/
|
||||||
|
|
||||||
|
define ( 'CACHE_MONTH', 0 );
|
||||||
|
define ( 'CACHE_WEEK', 1 );
|
||||||
|
define ( 'CACHE_DAY', 2 );
|
||||||
|
define ( 'CACHE_HOUR', 3 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* registration policies
|
* registration policies
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -819,7 +819,7 @@ function probe_url($url, $mode = PROBE_NORMAL, $level = 1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Cache::set("probe_url:".$mode.":".$url,serialize($result));
|
Cache::set("probe_url:".$mode.":".$url,serialize($result), CACHE_DAY);
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,33 +5,25 @@
|
||||||
|
|
||||||
class Cache {
|
class Cache {
|
||||||
public static function get($key) {
|
public static function get($key) {
|
||||||
/*if (function_exists("apc_fetch") AND function_exists("apc_exists"))
|
|
||||||
if (apc_exists($key))
|
|
||||||
return(apc_fetch($key));*/
|
|
||||||
|
|
||||||
$r = q("SELECT `v` FROM `cache` WHERE `k`='%s' limit 1",
|
$r = q("SELECT `v` FROM `cache` WHERE `k`='%s' limit 1",
|
||||||
dbesc($key)
|
dbesc($key)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (count($r)) {
|
if (count($r))
|
||||||
/*if (function_exists("apc_store"))
|
|
||||||
apc_store($key, $r[0]['v'], 600);*/
|
|
||||||
|
|
||||||
return $r[0]['v'];
|
return $r[0]['v'];
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function set($key,$value) {
|
public static function set($key,$value, $duration = CACHE_MONTH) {
|
||||||
|
|
||||||
q("REPLACE INTO `cache` (`k`,`v`,`updated`) VALUES ('%s','%s','%s')",
|
q("REPLACE INTO `cache` (`k`,`v`,`expire_mode`,`updated`) VALUES ('%s','%s',%d,'%s')",
|
||||||
dbesc($key),
|
dbesc($key),
|
||||||
dbesc($value),
|
dbesc($value),
|
||||||
|
intval($duration),
|
||||||
dbesc(datetime_convert()));
|
dbesc(datetime_convert()));
|
||||||
|
|
||||||
/*if (function_exists("apc_store"))
|
|
||||||
apc_store($key, $value, 600);*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,8 +55,17 @@
|
||||||
|
|
||||||
|
|
||||||
public static function clear(){
|
public static function clear(){
|
||||||
q("DELETE FROM `cache` WHERE `updated` < '%s'",
|
q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
|
||||||
dbesc(datetime_convert('UTC','UTC',"now - 30 days")));
|
dbesc(datetime_convert('UTC','UTC',"now - 30 days")), intval(CACHE_MONTH));
|
||||||
|
|
||||||
|
q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
|
||||||
|
dbesc(datetime_convert('UTC','UTC',"now - 7 days")), intval(CACHE_WEEK));
|
||||||
|
|
||||||
|
q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
|
||||||
|
dbesc(datetime_convert('UTC','UTC',"now - 1 days")), intval(CACHE_DAY));
|
||||||
|
|
||||||
|
q("DELETE FROM `cache` WHERE `updated` < '%s' AND `expire_mode` = %d",
|
||||||
|
dbesc(datetime_convert('UTC','UTC',"now - 1 hours")), intval(CACHE_HOUR));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -364,6 +364,7 @@ function db_definition() {
|
||||||
"fields" => array(
|
"fields" => array(
|
||||||
"k" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"),
|
"k" => array("type" => "varchar(255)", "not null" => "1", "primary" => "1"),
|
||||||
"v" => array("type" => "text", "not null" => "1"),
|
"v" => array("type" => "text", "not null" => "1"),
|
||||||
|
"expire_mode" => array("type" => "int(11)", "not null" => "1", "default" => "0"),
|
||||||
"updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
"updated" => array("type" => "datetime", "not null" => "1", "default" => "0000-00-00 00:00:00"),
|
||||||
),
|
),
|
||||||
"indexes" => array(
|
"indexes" => array(
|
||||||
|
|
|
@ -183,7 +183,7 @@ function discover_directory($search) {
|
||||||
poco_check($data["url"], $data["name"], $data["network"], $data["photo"], "", "", "", $jj->tags, $data["addr"], "", 0);
|
poco_check($data["url"], $data["name"], $data["network"], $data["photo"], "", "", "", $jj->tags, $data["addr"], "", 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Cache::set("dirsearch:".$search, time());
|
Cache::set("dirsearch:".$search, time(), CACHE_DAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array_search(__file__,get_included_files())===0){
|
if (array_search(__file__,get_included_files())===0){
|
||||||
|
|
|
@ -969,7 +969,7 @@ function query_page_info($url, $no_photos = false, $photo = "", $keywords = fals
|
||||||
$data = Cache::get("parse_url:".$url);
|
$data = Cache::get("parse_url:".$url);
|
||||||
if (is_null($data)){
|
if (is_null($data)){
|
||||||
$data = parseurl_getsiteinfo($url, true);
|
$data = parseurl_getsiteinfo($url, true);
|
||||||
Cache::set("parse_url:".$url,serialize($data));
|
Cache::set("parse_url:".$url,serialize($data), CACHE_DAY);
|
||||||
} else
|
} else
|
||||||
$data = unserialize($data);
|
$data = unserialize($data);
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ function oembed_fetch_url($embedurl, $no_rich_type = false){
|
||||||
if ($txt[0]!="{") $txt='{"type":"error"}';
|
if ($txt[0]!="{") $txt='{"type":"error"}';
|
||||||
|
|
||||||
//save in cache
|
//save in cache
|
||||||
Cache::set($a->videowidth . $embedurl,$txt);
|
Cache::set($a->videowidth . $embedurl,$txt, CACHE_DAY);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ function parseurl_getsiteinfo_cached($url, $no_guessing = false, $do_oembed = tr
|
||||||
|
|
||||||
$data = parseurl_getsiteinfo($url, $no_guessing, $do_oembed);
|
$data = parseurl_getsiteinfo($url, $no_guessing, $do_oembed);
|
||||||
|
|
||||||
Cache::set("parse_url:".$no_guessing.":".$do_oembed.":".$url,serialize($data));
|
Cache::set("parse_url:".$no_guessing.":".$do_oembed.":".$url,serialize($data), CACHE_DAY);
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1187 );
|
define( 'UPDATE_VERSION' , 1188 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue