mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-08-06 22:27:42 +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 compatibility shim */
|
||||||
|
|
||||||
$public_calls = array("globalUpdateFeeds", "rss", "getUnread", "getProfiles", "share");
|
$public_calls = array("rss", "getUnread", "getProfiles", "share");
|
||||||
|
|
||||||
if (array_search($op, $public_calls) !== false) {
|
if (array_search($op, $public_calls) !== false) {
|
||||||
header("Location: public.php?" . $_SERVER['QUERY_STRING']);
|
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). */
|
* your tt-rss directory protected by other means (e.g. http auth). */
|
||||||
const SINGLE_USER_MODE = "SINGLE_USER_MODE";
|
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 */
|
/** use this PHP CLI executable to start various tasks */
|
||||||
const PHP_EXECUTABLE = "PHP_EXECUTABLE";
|
const PHP_EXECUTABLE = "PHP_EXECUTABLE";
|
||||||
|
|
||||||
@ -205,7 +198,6 @@ class Config {
|
|||||||
Config::DB_PORT => [ "5432", Config::T_STRING ],
|
Config::DB_PORT => [ "5432", Config::T_STRING ],
|
||||||
Config::SELF_URL_PATH => [ "https://example.com/tt-rss", Config::T_STRING ],
|
Config::SELF_URL_PATH => [ "https://example.com/tt-rss", Config::T_STRING ],
|
||||||
Config::SINGLE_USER_MODE => [ "", Config::T_BOOL ],
|
Config::SINGLE_USER_MODE => [ "", Config::T_BOOL ],
|
||||||
Config::SIMPLE_UPDATE_MODE => [ "", Config::T_BOOL ],
|
|
||||||
Config::PHP_EXECUTABLE => [ "/usr/bin/php", Config::T_STRING ],
|
Config::PHP_EXECUTABLE => [ "/usr/bin/php", Config::T_STRING ],
|
||||||
Config::LOCK_DIRECTORY => [ "lock", Config::T_STRING ],
|
Config::LOCK_DIRECTORY => [ "lock", Config::T_STRING ],
|
||||||
Config::CACHE_DIR => [ "cache", 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');
|
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 {
|
function login(): void {
|
||||||
if (!Config::get(Config::SINGLE_USER_MODE)) {
|
if (!Config::get(Config::SINGLE_USER_MODE)) {
|
||||||
|
|
||||||
|
@ -250,77 +250,6 @@ class RPC extends Handler_Protected {
|
|||||||
print json_encode(["wide" => $wide]);
|
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
|
* @param array<int, int> $ids
|
||||||
*/
|
*/
|
||||||
@ -466,7 +395,6 @@ class RPC extends Handler_Protected {
|
|||||||
$params["num_feeds"] = (int) $num_feeds;
|
$params["num_feeds"] = (int) $num_feeds;
|
||||||
$params["hotkeys"] = $this->get_hotkeys_map();
|
$params["hotkeys"] = $this->get_hotkeys_map();
|
||||||
$params["widescreen"] = (int) Prefs::get(Prefs::WIDESCREEN_MODE, $_SESSION['uid'], $profile);
|
$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_indicator_white"] = $this->image_to_base64("images/indicator_white.gif");
|
||||||
$params["icon_oval"] = $this->image_to_base64("images/oval.svg");
|
$params["icon_oval"] = $this->image_to_base64("images/oval.svg");
|
||||||
$params["icon_three_dots"] = $this->image_to_base64("images/three-dots.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.
|
// 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 '
|
$updstart_thresh_qpart = 'AND (last_update_started IS NULL OR '
|
||||||
. Db::past_comparison_qpart('last_update_started', '<', 10, 'minute') . ')';
|
. Db::past_comparison_qpart('last_update_started', '<', 10, 'minute') . ')';
|
||||||
|
|
||||||
|
@ -829,11 +829,6 @@ const App = {
|
|||||||
|
|
||||||
Headlines.initScrollHandler();
|
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')) {
|
if (this.getInitParam('check_for_updates')) {
|
||||||
window.setInterval(() => {
|
window.setInterval(() => {
|
||||||
this.checkForUpdates();
|
this.checkForUpdates();
|
||||||
|
@ -743,13 +743,6 @@ const Feeds = {
|
|||||||
dialog.show();
|
dialog.show();
|
||||||
|
|
||||||
},
|
},
|
||||||
updateRandom: function() {
|
|
||||||
console.log("in update_random_feed");
|
|
||||||
|
|
||||||
xhr.json("backend.php", {op: "RPC", method: "updaterandomfeed"}, () => {
|
|
||||||
//
|
|
||||||
});
|
|
||||||
},
|
|
||||||
renderIcon: function(feed_id, exists) {
|
renderIcon: function(feed_id, exists) {
|
||||||
const icon_url = App.getInitParam("icons_url") + '?' + dojo.objectToQuery({op: 'feed_icon', id: feed_id});
|
const icon_url = App.getInitParam("icons_url") + '?' + dojo.objectToQuery({op: 'feed_icon', id: feed_id});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user