mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-08-06 06:07:29 +02:00
drop SIMPLE_UPDATE_MODE, limit housekeeping and updates to background processes
This commit is contained in:
parent
a51c1d5176
commit
aeca30cb0c
@ -14,7 +14,7 @@
|
||||
|
||||
/* Public calls compatibility shim */
|
||||
|
||||
$public_calls = array("globalUpdateFeeds", "rss", "getUnread", "getProfiles", "share");
|
||||
$public_calls = array("rss", "getUnread", "getProfiles", "share");
|
||||
|
||||
if (array_search($op, $public_calls) !== false) {
|
||||
header("Location: public.php?" . $_SERVER['QUERY_STRING']);
|
||||
|
@ -53,13 +53,6 @@ class Config {
|
||||
* your tt-rss directory protected by other means (e.g. http auth). */
|
||||
const SINGLE_USER_MODE = "SINGLE_USER_MODE";
|
||||
|
||||
/** enables fallback update mode where tt-rss tries to update feeds in
|
||||
* background while tt-rss is open in your browser.
|
||||
* if you don't have a lot of feeds and don't want to or can't run
|
||||
* background processes while not running tt-rss, this method is generally
|
||||
* viable to keep your feeds up to date. */
|
||||
const SIMPLE_UPDATE_MODE = "SIMPLE_UPDATE_MODE";
|
||||
|
||||
/** use this PHP CLI executable to start various tasks */
|
||||
const PHP_EXECUTABLE = "PHP_EXECUTABLE";
|
||||
|
||||
@ -205,7 +198,6 @@ class Config {
|
||||
Config::DB_PORT => [ "5432", Config::T_STRING ],
|
||||
Config::SELF_URL_PATH => [ "https://example.com/tt-rss", Config::T_STRING ],
|
||||
Config::SINGLE_USER_MODE => [ "", Config::T_BOOL ],
|
||||
Config::SIMPLE_UPDATE_MODE => [ "", Config::T_BOOL ],
|
||||
Config::PHP_EXECUTABLE => [ "/usr/bin/php", Config::T_STRING ],
|
||||
Config::LOCK_DIRECTORY => [ "lock", Config::T_STRING ],
|
||||
Config::CACHE_DIR => [ "cache", Config::T_STRING ],
|
||||
|
@ -360,20 +360,6 @@ class Handler_Public extends Handler {
|
||||
header('HTTP/1.1 403 Forbidden');
|
||||
}
|
||||
|
||||
function updateTask(): void {
|
||||
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK);
|
||||
}
|
||||
|
||||
function housekeepingTask(): void {
|
||||
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_HOUSE_KEEPING);
|
||||
}
|
||||
|
||||
function globalUpdateFeeds(): void {
|
||||
RPC::updaterandomfeed_real();
|
||||
|
||||
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK);
|
||||
}
|
||||
|
||||
function login(): void {
|
||||
if (!Config::get(Config::SINGLE_USER_MODE)) {
|
||||
|
||||
|
@ -250,77 +250,6 @@ class RPC extends Handler_Protected {
|
||||
print json_encode(["wide" => $wide]);
|
||||
}
|
||||
|
||||
static function updaterandomfeed_real(): void {
|
||||
$default_interval = (int) Prefs::get_default(Prefs::DEFAULT_UPDATE_INTERVAL);
|
||||
|
||||
// Test if the feed need a update (update interval exceded).
|
||||
$update_limit_qpart = "AND ((
|
||||
update_interval = 0
|
||||
AND (p.value IS NULL OR p.value != '-1')
|
||||
AND last_updated < NOW() - CAST((COALESCE(p.value, '$default_interval') || ' minutes') AS INTERVAL)
|
||||
) OR (
|
||||
update_interval > 0
|
||||
AND last_updated < NOW() - CAST((update_interval || ' minutes') AS INTERVAL)
|
||||
) OR (
|
||||
update_interval >= 0
|
||||
AND (p.value IS NULL OR p.value != '-1')
|
||||
AND (last_updated = '1970-01-01 00:00:00' OR last_updated IS NULL)
|
||||
))";
|
||||
|
||||
// Test if feed is currently being updated by another process.
|
||||
$updstart_thresh_qpart = 'AND (last_update_started IS NULL OR '
|
||||
. Db::past_comparison_qpart('last_update_started', '<', 5, 'minute') . ')';
|
||||
|
||||
$pdo = Db::pdo();
|
||||
|
||||
// we could be invoked from public.php with no active session
|
||||
if (!empty($_SESSION["uid"])) {
|
||||
$owner_check_qpart = "AND f.owner_uid = ".$pdo->quote($_SESSION["uid"]);
|
||||
} else {
|
||||
$owner_check_qpart = "";
|
||||
}
|
||||
|
||||
$query = "SELECT f.feed_url,f.id
|
||||
FROM
|
||||
ttrss_feeds f, ttrss_users u LEFT JOIN ttrss_user_prefs2 p ON
|
||||
(p.owner_uid = u.id AND profile IS NULL AND pref_name = 'DEFAULT_UPDATE_INTERVAL')
|
||||
WHERE
|
||||
f.owner_uid = u.id AND
|
||||
u.access_level NOT IN (".sprintf("%d, %d", UserHelper::ACCESS_LEVEL_DISABLED, UserHelper::ACCESS_LEVEL_READONLY).")
|
||||
$owner_check_qpart
|
||||
$update_limit_qpart
|
||||
$updstart_thresh_qpart
|
||||
ORDER BY RANDOM() LIMIT 30";
|
||||
|
||||
$res = $pdo->query($query);
|
||||
|
||||
$num_updated = 0;
|
||||
|
||||
$tstart = time();
|
||||
|
||||
while ($line = $res->fetch()) {
|
||||
$feed_id = $line["id"];
|
||||
|
||||
if (time() - $tstart < ini_get("max_execution_time") * 0.7) {
|
||||
RSSUtils::update_rss_feed($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"));
|
||||
}
|
||||
}
|
||||
|
||||
function updaterandomfeed(): void {
|
||||
self::updaterandomfeed_real();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<int, int> $ids
|
||||
*/
|
||||
@ -466,7 +395,6 @@ class RPC extends Handler_Protected {
|
||||
$params["num_feeds"] = (int) $num_feeds;
|
||||
$params["hotkeys"] = $this->get_hotkeys_map();
|
||||
$params["widescreen"] = (int) Prefs::get(Prefs::WIDESCREEN_MODE, $_SESSION['uid'], $profile);
|
||||
$params['simple_update'] = Config::get(Config::SIMPLE_UPDATE_MODE);
|
||||
$params["icon_indicator_white"] = $this->image_to_base64("images/indicator_white.gif");
|
||||
$params["icon_oval"] = $this->image_to_base64("images/oval.svg");
|
||||
$params["icon_three_dots"] = $this->image_to_base64("images/three-dots.svg");
|
||||
|
@ -129,7 +129,6 @@ class RSSUtils {
|
||||
))";
|
||||
|
||||
// Test if feed is currently being updated by another process.
|
||||
// TODO: Update RPC::updaterandomfeed_real() to also use 10 minutes?
|
||||
$updstart_thresh_qpart = 'AND (last_update_started IS NULL OR '
|
||||
. Db::past_comparison_qpart('last_update_started', '<', 10, 'minute') . ')';
|
||||
|
||||
|
@ -829,11 +829,6 @@ const App = {
|
||||
|
||||
Headlines.initScrollHandler();
|
||||
|
||||
if (this.getInitParam("simple_update")) {
|
||||
console.log("scheduling simple feed updater...");
|
||||
window.setInterval(() => { Feeds.updateRandom() }, 30 * 1000);
|
||||
}
|
||||
|
||||
if (this.getInitParam('check_for_updates')) {
|
||||
window.setInterval(() => {
|
||||
this.checkForUpdates();
|
||||
|
@ -743,13 +743,6 @@ const Feeds = {
|
||||
dialog.show();
|
||||
|
||||
},
|
||||
updateRandom: function() {
|
||||
console.log("in update_random_feed");
|
||||
|
||||
xhr.json("backend.php", {op: "RPC", method: "updaterandomfeed"}, () => {
|
||||
//
|
||||
});
|
||||
},
|
||||
renderIcon: function(feed_id, exists) {
|
||||
const icon_url = App.getInitParam("icons_url") + '?' + dojo.objectToQuery({op: 'feed_icon', id: feed_id});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user