make globalUpdateFeeds handler use simple update mechanism to prevent script timeouts

This commit is contained in:
Andrew Dolgov 2013-07-24 12:55:10 +04:00
parent 9fa8d652c2
commit 113c3dec9e
2 changed files with 9 additions and 8 deletions

View file

@ -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() {

View file

@ -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();