remove memcached stuff

This commit is contained in:
Andrew Dolgov 2012-07-06 14:37:03 +04:00
parent 713d98563d
commit 0e4a7d7a94
4 changed files with 118 additions and 224 deletions

View File

@ -402,10 +402,6 @@ class Pref_Filters extends Protected_Handler {
function editSave() { function editSave() {
global $memcache;
if ($memcache) $memcache->flush();
$savemode = db_escape_string($_REQUEST["savemode"]); $savemode = db_escape_string($_REQUEST["savemode"]);
$reg_exp = db_escape_string(trim($_REQUEST["reg_exp"])); $reg_exp = db_escape_string(trim($_REQUEST["reg_exp"]));
$filter_type = db_escape_string(trim($_REQUEST["filter_type"])); $filter_type = db_escape_string(trim($_REQUEST["filter_type"]));
@ -476,8 +472,6 @@ class Pref_Filters extends Protected_Handler {
function remove() { function remove() {
if ($memcache) $memcache->flush();
$ids = split(",", db_escape_string($_REQUEST["ids"])); $ids = split(",", db_escape_string($_REQUEST["ids"]));
foreach ($ids as $id) { foreach ($ids as $id) {
@ -487,8 +481,6 @@ class Pref_Filters extends Protected_Handler {
function add() { function add() {
if ($memcache) $memcache->flush();
$savemode = db_escape_string($_REQUEST["savemode"]); $savemode = db_escape_string($_REQUEST["savemode"]);
$regexp = db_escape_string(trim($_REQUEST["reg_exp"])); $regexp = db_escape_string(trim($_REQUEST["reg_exp"]));
$filter_type = db_escape_string(trim($_REQUEST["filter_type"])); $filter_type = db_escape_string(trim($_REQUEST["filter_type"]));

View File

@ -360,7 +360,6 @@ class RPC extends Protected_Handler {
} }
function setArticleTags() { function setArticleTags() {
global $memcache;
$id = db_escape_string($_REQUEST["id"]); $id = db_escape_string($_REQUEST["id"]);
@ -414,11 +413,6 @@ class RPC extends Protected_Handler {
db_query($this->link, "COMMIT"); db_query($this->link, "COMMIT");
if ($memcache) {
$obj_id = md5("TAGS:".$_SESSION["uid"].":$id");
$memcache->delete($obj_id);
}
$tags = get_article_tags($this->link, $id); $tags = get_article_tags($this->link, $id);
$tags_str = format_tags_string($tags, $id); $tags_str = format_tags_string($tags, $id);
$tags_str_full = join(", ", $tags); $tags_str_full = join(", ", $tags);

View File

@ -83,11 +83,6 @@
startup_gettext(); startup_gettext();
if (defined('MEMCACHE_SERVER')) {
$memcache = new Memcache;
$memcache->connect(MEMCACHE_SERVER, 11211);
}
require_once 'db-prefs.php'; require_once 'db-prefs.php';
require_once 'version.php'; require_once 'version.php';
@ -3079,8 +3074,6 @@
function get_article_tags($link, $id, $owner_uid = 0, $tag_cache = false) { function get_article_tags($link, $id, $owner_uid = 0, $tag_cache = false) {
global $memcache;
$a_id = db_escape_string($id); $a_id = db_escape_string($id);
if (!$owner_uid) $owner_uid = $_SESSION["uid"]; if (!$owner_uid) $owner_uid = $_SESSION["uid"];
@ -3093,40 +3086,34 @@
$obj_id = md5("TAGS:$owner_uid:$id"); $obj_id = md5("TAGS:$owner_uid:$id");
$tags = array(); $tags = array();
if ($memcache && $obj = $memcache->get($obj_id)) { /* check cache first */
$tags = $obj;
if ($tag_cache === false) {
$result = db_query($link, "SELECT tag_cache FROM ttrss_user_entries
WHERE ref_id = '$id' AND owner_uid = $owner_uid");
$tag_cache = db_fetch_result($result, 0, "tag_cache");
}
if ($tag_cache) {
$tags = explode(",", $tag_cache);
} else { } else {
/* check cache first */
if ($tag_cache === false) { /* do it the hard way */
$result = db_query($link, "SELECT tag_cache FROM ttrss_user_entries
WHERE ref_id = '$id' AND owner_uid = $owner_uid");
$tag_cache = db_fetch_result($result, 0, "tag_cache"); $tmp_result = db_query($link, $query);
while ($tmp_line = db_fetch_assoc($tmp_result)) {
array_push($tags, $tmp_line["tag_name"]);
} }
if ($tag_cache) { /* update the cache */
$tags = explode(",", $tag_cache);
} else {
/* do it the hard way */ $tags_str = db_escape_string(join(",", $tags));
$tmp_result = db_query($link, $query); db_query($link, "UPDATE ttrss_user_entries
SET tag_cache = '$tags_str' WHERE ref_id = '$id'
while ($tmp_line = db_fetch_assoc($tmp_result)) { AND owner_uid = $owner_uid");
array_push($tags, $tmp_line["tag_name"]);
}
/* update the cache */
$tags_str = db_escape_string(join(",", $tags));
db_query($link, "UPDATE ttrss_user_entries
SET tag_cache = '$tags_str' WHERE ref_id = '$id'
AND owner_uid = $owner_uid");
}
if ($memcache) $memcache->add($obj_id, $tags, 0, 3600);
} }
return $tags; return $tags;
@ -3590,55 +3577,44 @@
function load_filters($link, $feed, $owner_uid, $action_id = false) { function load_filters($link, $feed, $owner_uid, $action_id = false) {
$filters = array(); $filters = array();
global $memcache;
$obj_id = md5("FILTER:$feed:$owner_uid:$action_id"); if ($action_id) $ftype_query_part = "action_id = '$action_id' AND";
if ($memcache && $obj = $memcache->get($obj_id)) { $result = db_query($link, "SELECT reg_exp,
ttrss_filter_types.name AS name,
ttrss_filter_actions.name AS action,
inverse,
action_param,
filter_param
FROM ttrss_filters
LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = '$feed'),
ttrss_filter_types,ttrss_filter_actions
WHERE
enabled = true AND
$ftype_query_part
ttrss_filters.owner_uid = $owner_uid AND
ttrss_filter_types.id = filter_type AND
ttrss_filter_actions.id = action_id AND
((cat_filter = true AND ttrss_feeds.cat_id = ttrss_filters.cat_id) OR
(cat_filter = true AND ttrss_feeds.cat_id IS NULL AND
ttrss_filters.cat_id IS NULL) OR
(cat_filter = false AND (feed_id IS NULL OR feed_id = '$feed')))
ORDER BY reg_exp");
return $obj; while ($line = db_fetch_assoc($result)) {
} else { if (!$filters[$line["name"]]) $filters[$line["name"]] = array();
$filter["reg_exp"] = $line["reg_exp"];
$filter["action"] = $line["action"];
$filter["action_param"] = $line["action_param"];
$filter["filter_param"] = $line["filter_param"];
$filter["inverse"] = sql_bool_to_bool($line["inverse"]);
if ($action_id) $ftype_query_part = "action_id = '$action_id' AND"; array_push($filters[$line["name"]], $filter);
}
$result = db_query($link, "SELECT reg_exp,
ttrss_filter_types.name AS name,
ttrss_filter_actions.name AS action,
inverse,
action_param,
filter_param
FROM ttrss_filters
LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = '$feed'),
ttrss_filter_types,ttrss_filter_actions
WHERE
enabled = true AND
$ftype_query_part
ttrss_filters.owner_uid = $owner_uid AND
ttrss_filter_types.id = filter_type AND
ttrss_filter_actions.id = action_id AND
((cat_filter = true AND ttrss_feeds.cat_id = ttrss_filters.cat_id) OR
(cat_filter = true AND ttrss_feeds.cat_id IS NULL AND
ttrss_filters.cat_id IS NULL) OR
(cat_filter = false AND (feed_id IS NULL OR feed_id = '$feed')))
ORDER BY reg_exp");
while ($line = db_fetch_assoc($result)) { return $filters;
if (!$filters[$line["name"]]) $filters[$line["name"]] = array();
$filter["reg_exp"] = $line["reg_exp"];
$filter["action"] = $line["action"];
$filter["action_param"] = $line["action_param"];
$filter["filter_param"] = $line["filter_param"];
$filter["inverse"] = sql_bool_to_bool($line["inverse"]);
array_push($filters[$line["name"]], $filter);
}
if ($memcache) $memcache->add($obj_id, $filters, 0, 3600*8);
return $filters;
}
} }
function get_score_pic($score) { function get_score_pic($score) {
@ -3915,53 +3891,44 @@
} }
function get_article_labels($link, $id) { function get_article_labels($link, $id) {
global $memcache;
$obj_id = md5("LABELS:$id:" . $_SESSION["uid"]);
$rv = array(); $rv = array();
if ($memcache && $obj = $memcache->get($obj_id)) {
return $obj;
} else {
$result = db_query($link, "SELECT label_cache FROM $result = db_query($link, "SELECT label_cache FROM
ttrss_user_entries WHERE ref_id = '$id' AND owner_uid = " . ttrss_user_entries WHERE ref_id = '$id' AND owner_uid = " .
$_SESSION["uid"]); $_SESSION["uid"]);
$label_cache = db_fetch_result($result, 0, "label_cache"); $label_cache = db_fetch_result($result, 0, "label_cache");
if ($label_cache) { if ($label_cache) {
$label_cache = json_decode($label_cache, true); $label_cache = json_decode($label_cache, true);
if ($label_cache["no-labels"] == 1) if ($label_cache["no-labels"] == 1)
return $rv; return $rv;
else
return $label_cache;
}
$result = db_query($link,
"SELECT DISTINCT label_id,caption,fg_color,bg_color
FROM ttrss_labels2, ttrss_user_labels2
WHERE id = label_id
AND article_id = '$id'
AND owner_uid = ".$_SESSION["uid"] . "
ORDER BY caption");
while ($line = db_fetch_assoc($result)) {
$rk = array($line["label_id"], $line["caption"], $line["fg_color"],
$line["bg_color"]);
array_push($rv, $rk);
}
if ($memcache) $memcache->add($obj_id, $rv, 0, 3600);
if (count($rv) > 0)
label_update_cache($link, $id, $rv);
else else
label_update_cache($link, $id, array("no-labels" => 1)); return $label_cache;
} }
$result = db_query($link,
"SELECT DISTINCT label_id,caption,fg_color,bg_color
FROM ttrss_labels2, ttrss_user_labels2
WHERE id = label_id
AND article_id = '$id'
AND owner_uid = ".$_SESSION["uid"] . "
ORDER BY caption");
while ($line = db_fetch_assoc($result)) {
$rk = array($line["label_id"], $line["caption"], $line["fg_color"],
$line["bg_color"]);
array_push($rv, $rk);
}
if (count($rv) > 0)
label_update_cache($link, $id, $rv);
else
label_update_cache($link, $id, array("no-labels" => 1));
return $rv; return $rv;
} }
@ -4017,13 +3984,6 @@
function label_add_article($link, $id, $label, $owner_uid) { function label_add_article($link, $id, $label, $owner_uid) {
global $memcache;
if ($memcache) {
$obj_id = md5("LABELS:$id:$owner_uid");
$memcache->delete($obj_id);
}
$label_id = label_find_id($link, $label, $owner_uid); $label_id = label_find_id($link, $label, $owner_uid);
if (!$label_id) return; if (!$label_id) return;
@ -4047,15 +4007,8 @@
} }
function label_remove($link, $id, $owner_uid) { function label_remove($link, $id, $owner_uid) {
global $memcache;
if (!$owner_uid) $owner_uid = $_SESSION["uid"]; if (!$owner_uid) $owner_uid = $_SESSION["uid"];
if ($memcache) {
$obj_id = md5("LABELS:$id:$owner_uid");
$memcache->delete($obj_id);
}
db_query($link, "BEGIN"); db_query($link, "BEGIN");
$result = db_query($link, "SELECT caption FROM ttrss_labels2 $result = db_query($link, "SELECT caption FROM ttrss_labels2
@ -4375,25 +4328,16 @@
function get_article_enclosures($link, $id) { function get_article_enclosures($link, $id) {
global $memcache;
$query = "SELECT * FROM ttrss_enclosures $query = "SELECT * FROM ttrss_enclosures
WHERE post_id = '$id' AND content_url != ''"; WHERE post_id = '$id' AND content_url != ''";
$obj_id = md5("ENCLOSURES:$id");
$rv = array(); $rv = array();
if ($memcache && $obj = $memcache->get($obj_id)) { $result = db_query($link, $query);
$rv = $obj;
} else {
$result = db_query($link, $query);
if (db_num_rows($result) > 0) { if (db_num_rows($result) > 0) {
while ($line = db_fetch_assoc($result)) { while ($line = db_fetch_assoc($result)) {
array_push($rv, $line); array_push($rv, $line);
}
if ($memcache) $memcache->add($obj_id, $rv, 0, 3600);
} }
} }

View File

@ -209,34 +209,13 @@
} }
} }
function update_rss_feed($link, $feed, $ignore_daemon = false, $no_cache = false) { function update_rss_feed($link, $feed, $ignore_daemon = false, $no_cache = false,
global $memcache;
/* Update all feeds with the same URL to utilize memcache */
if ($memcache) {
$result = db_query($link, "SELECT f1.id
FROM ttrss_feeds AS f1, ttrss_feeds AS f2
WHERE f2.feed_url = f1.feed_url AND f2.id = '$feed'");
while ($line = db_fetch_assoc($result)) {
update_rss_feed_real($link, $line["id"], $ignore_daemon, $no_cache);
}
} else {
update_rss_feed_real($link, $feed, $ignore_daemon, $no_cache);
}
}
function update_rss_feed_real($link, $feed, $ignore_daemon = false, $no_cache = false,
$override_url = false) { $override_url = false) {
require_once "lib/simplepie/simplepie.inc"; require_once "lib/simplepie/simplepie.inc";
require_once "lib/magpierss/rss_fetch.inc"; require_once "lib/magpierss/rss_fetch.inc";
require_once 'lib/magpierss/rss_utils.inc'; require_once 'lib/magpierss/rss_utils.inc';
global $memcache;
$debug_enabled = defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug']; $debug_enabled = defined('DAEMON_EXTENDED_DEBUG') || $_REQUEST['xdebug'];
if (!$_REQUEST["daemon"] && !$ignore_daemon) { if (!$_REQUEST["daemon"] && !$ignore_daemon) {
@ -334,62 +313,47 @@
_debug("update_rss_feed: fetching [$fetch_url]..."); _debug("update_rss_feed: fetching [$fetch_url]...");
} }
$obj_id = md5("FDATA:$use_simplepie:$fetch_url"); // Ignore cache if new feed or manual update.
$cache_age = (is_null($last_updated) || $last_updated == '1970-01-01 00:00:00') ?
-1 : get_feed_update_interval($link, $feed) * 60;
if ($memcache && $obj = $memcache->get($obj_id)) { if ($update_method == 3) {
$rss = fetch_twitter_rss($link, $fetch_url, $owner_uid);
} else if ($update_method == 1) {
define('MAGPIE_CACHE_AGE', $cache_age);
define('MAGPIE_CACHE_ON', !$no_cache);
define('MAGPIE_FETCH_TIME_OUT', 60);
define('MAGPIE_CACHE_DIR', CACHE_DIR . "/magpie");
$rss = @fetch_rss($fetch_url);
} else {
$simplepie_cache_dir = CACHE_DIR . "/simplepie";
if (!is_dir($simplepie_cache_dir)) {
mkdir($simplepie_cache_dir);
}
$rss = new SimplePie();
$rss->set_useragent(SELF_USER_AGENT);
# $rss->set_timeout(10);
$rss->set_feed_url($fetch_url);
$rss->set_output_encoding('UTF-8');
//$rss->force_feed(true);
if ($debug_enabled) { if ($debug_enabled) {
_debug("update_rss_feed: data found in memcache."); _debug("feed update interval (sec): " .
get_feed_update_interval($link, $feed)*60);
} }
$rss = $obj; $rss->enable_cache(!$no_cache);
} else { if (!$no_cache) {
$rss->set_cache_location($simplepie_cache_dir);
// Ignore cache if new feed or manual update. $rss->set_cache_duration($cache_age);
$cache_age = (is_null($last_updated) || $last_updated == '1970-01-01 00:00:00') ?
-1 : get_feed_update_interval($link, $feed) * 60;
if ($update_method == 3) {
$rss = fetch_twitter_rss($link, $fetch_url, $owner_uid);
} else if ($update_method == 1) {
define('MAGPIE_CACHE_AGE', $cache_age);
define('MAGPIE_CACHE_ON', !$no_cache);
define('MAGPIE_FETCH_TIME_OUT', 60);
define('MAGPIE_CACHE_DIR', CACHE_DIR . "/magpie");
$rss = @fetch_rss($fetch_url);
} else {
$simplepie_cache_dir = CACHE_DIR . "/simplepie";
if (!is_dir($simplepie_cache_dir)) {
mkdir($simplepie_cache_dir);
}
$rss = new SimplePie();
$rss->set_useragent(SELF_USER_AGENT);
# $rss->set_timeout(10);
$rss->set_feed_url($fetch_url);
$rss->set_output_encoding('UTF-8');
//$rss->force_feed(true);
if ($debug_enabled) {
_debug("feed update interval (sec): " .
get_feed_update_interval($link, $feed)*60);
}
$rss->enable_cache(!$no_cache);
if (!$no_cache) {
$rss->set_cache_location($simplepie_cache_dir);
$rss->set_cache_duration($cache_age);
}
$rss->init();
} }
if ($memcache && $rss) $memcache->add($obj_id, $rss, 0, 300); $rss->init();
} }
// print_r($rss); // print_r($rss);