From 113c3dec9e02f48df22cda107257d15655e3f007 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 24 Jul 2013 12:55:10 +0400 Subject: [PATCH] make globalUpdateFeeds handler use simple update mechanism to prevent script timeouts --- classes/handler/public.php | 6 +----- classes/rpc.php | 11 ++++++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/classes/handler/public.php b/classes/handler/public.php index 60a961bf..de0ab66f 100644 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -391,13 +391,9 @@ class Handler_Public extends Handler { } function globalUpdateFeeds() { - include "rssfuncs.php"; - // Update all feeds needing a update. - update_daemon_common(0, true, false); - housekeeping_common(false); + RPC::updaterandomfeed_real($this->dbh); PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op); - } function sharepopup() { diff --git a/classes/rpc.php b/classes/rpc.php index 9cc8e704..cfd9c4f2 100644 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -476,7 +476,8 @@ class RPC extends Handler_Protected { print json_encode(array("wide" => $wide)); } - function updaterandomfeed() { + static function updaterandomfeed_real($dbh) { + // Test if the feed need a update (update interval exceded). if (DB_TYPE == "pgsql") { $update_limit_qpart = "AND (( @@ -508,7 +509,7 @@ class RPC extends Handler_Protected { $random_qpart = sql_random_function(); // We search for feed needing update. - $result = $this->dbh->query("SELECT ttrss_feeds.feed_url,ttrss_feeds.id + $result = $dbh->query("SELECT ttrss_feeds.feed_url,ttrss_feeds.id FROM ttrss_feeds, ttrss_users, ttrss_user_prefs WHERE @@ -527,7 +528,7 @@ class RPC extends Handler_Protected { $tstart = time(); - while ($line = $this->dbh->fetch_assoc($result)) { + while ($line = $dbh->fetch_assoc($result)) { $feed_id = $line["id"]; if (time() - $tstart < ini_get("max_execution_time") * 0.7) { @@ -551,6 +552,10 @@ class RPC extends Handler_Protected { } + function updaterandomfeed() { + RPC::updaterandomfeed_real($this->dbh); + } + private function markArticlesById($ids, $cmode) { $tmp_ids = array(); -- 2.39.5