implement fallback _SIMPLE_UPDATE_MODE
This commit is contained in:
parent
6addc13f46
commit
8b83bf5fa1
|
@ -645,5 +645,76 @@ class RPC extends Handler_Protected {
|
||||||
print json_encode(array("wide" => $wide));
|
print json_encode(array("wide" => $wide));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updaterandomfeed() {
|
||||||
|
// Test if the feed need a update (update interval exceded).
|
||||||
|
if (DB_TYPE == "pgsql") {
|
||||||
|
$update_limit_qpart = "AND ((
|
||||||
|
ttrss_feeds.update_interval = 0
|
||||||
|
AND ttrss_feeds.last_updated < NOW() - CAST((ttrss_user_prefs.value || ' minutes') AS INTERVAL)
|
||||||
|
) OR (
|
||||||
|
ttrss_feeds.update_interval > 0
|
||||||
|
AND ttrss_feeds.last_updated < NOW() - CAST((ttrss_feeds.update_interval || ' minutes') AS INTERVAL)
|
||||||
|
) OR ttrss_feeds.last_updated IS NULL
|
||||||
|
OR last_updated = '1970-01-01 00:00:00')";
|
||||||
|
} else {
|
||||||
|
$update_limit_qpart = "AND ((
|
||||||
|
ttrss_feeds.update_interval = 0
|
||||||
|
AND ttrss_feeds.last_updated < DATE_SUB(NOW(), INTERVAL CONVERT(ttrss_user_prefs.value, SIGNED INTEGER) MINUTE)
|
||||||
|
) OR (
|
||||||
|
ttrss_feeds.update_interval > 0
|
||||||
|
AND ttrss_feeds.last_updated < DATE_SUB(NOW(), INTERVAL ttrss_feeds.update_interval MINUTE)
|
||||||
|
) OR ttrss_feeds.last_updated IS NULL
|
||||||
|
OR last_updated = '1970-01-01 00:00:00')";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test if feed is currently being updated by another process.
|
||||||
|
if (DB_TYPE == "pgsql") {
|
||||||
|
$updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < NOW() - INTERVAL '5 minutes')";
|
||||||
|
} else {
|
||||||
|
$updstart_thresh_qpart = "AND (ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started < DATE_SUB(NOW(), INTERVAL 5 MINUTE))";
|
||||||
|
}
|
||||||
|
|
||||||
|
$random_qpart = sql_random_function();
|
||||||
|
|
||||||
|
// We search for feed needing update.
|
||||||
|
$result = db_query($this->link, "SELECT ttrss_feeds.feed_url,ttrss_feeds.id
|
||||||
|
FROM
|
||||||
|
ttrss_feeds, ttrss_users, ttrss_user_prefs
|
||||||
|
WHERE
|
||||||
|
ttrss_feeds.owner_uid = ttrss_users.id
|
||||||
|
AND ttrss_users.id = ttrss_user_prefs.owner_uid
|
||||||
|
AND ttrss_user_prefs.pref_name = 'DEFAULT_UPDATE_INTERVAL'
|
||||||
|
AND ttrss_feeds.owner_uid = ".$_SESSION["uid"]."
|
||||||
|
$update_limit_qpart $updstart_thresh_qpart
|
||||||
|
ORDER BY $random_qpart LIMIT 30");
|
||||||
|
|
||||||
|
$feed_id = -1;
|
||||||
|
|
||||||
|
require_once "rssfuncs.php";
|
||||||
|
|
||||||
|
$num_updated = 0;
|
||||||
|
|
||||||
|
$tstart = time();
|
||||||
|
|
||||||
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
$feed_id = $line["id"];
|
||||||
|
|
||||||
|
if (time() - $tstart < 30) {
|
||||||
|
update_rss_feed($this->link, $feed_id, true);
|
||||||
|
++$num_updated;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($num_updated > 0) {
|
||||||
|
print json_encode(array("message" => "UPDATE_COUNTERS",
|
||||||
|
"num_updated" => $num_updated));
|
||||||
|
} else {
|
||||||
|
print json_encode(array("message" => "NOTHING_TO_UPDATE"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1968,6 +1968,8 @@
|
||||||
$params["csrf_token"] = $_SESSION["csrf_token"];
|
$params["csrf_token"] = $_SESSION["csrf_token"];
|
||||||
$params["widescreen"] = (int) $_SESSION["widescreen"];
|
$params["widescreen"] = (int) $_SESSION["widescreen"];
|
||||||
|
|
||||||
|
$params['simple_update'] = defined('_SIMPLE_UPDATE_MODE') && _SIMPLE_UPDATE_MODE;
|
||||||
|
|
||||||
return $params;
|
return $params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
21
js/tt-rss.js
21
js/tt-rss.js
|
@ -379,6 +379,11 @@ function init_second_stage() {
|
||||||
|
|
||||||
console.log("second stage ok");
|
console.log("second stage ok");
|
||||||
|
|
||||||
|
if (getInitParam("simple_update")) {
|
||||||
|
console.log("scheduling simple feed updater...");
|
||||||
|
window.setTimeout("update_random_feed()", 30*1000);
|
||||||
|
}
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
exception_error("init_second_stage", e);
|
exception_error("init_second_stage", e);
|
||||||
}
|
}
|
||||||
|
@ -1033,3 +1038,19 @@ function switchPanelMode(wide) {
|
||||||
exception_error("switchPanelMode", e);
|
exception_error("switchPanelMode", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function update_random_feed() {
|
||||||
|
try {
|
||||||
|
console.log("in update_random_feed");
|
||||||
|
|
||||||
|
new Ajax.Request("backend.php", {
|
||||||
|
parameters: "op=rpc&method=updateRandomFeed",
|
||||||
|
onComplete: function(transport) {
|
||||||
|
handle_rpc_json(transport, true);
|
||||||
|
window.setTimeout("update_random_feed()", 30*1000);
|
||||||
|
} });
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("update_random_feed", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue