summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-24 14:54:59 +0400
committerAndrew Dolgov <[email protected]>2013-04-24 14:54:59 +0400
commite2cf81e21406f0b507446cf369f7da172ce9da14 (patch)
tree6c00059871b892a30c02d17336f7ed9cf268cb1c
parent654650857ffc3e4914c9655528e1037939f75f54 (diff)
unify houskeeping stuff, increase spawn interval
-rw-r--r--classes/db.php4
-rw-r--r--classes/handler/public.php9
-rw-r--r--include/functions.php2
-rw-r--r--include/rssfuncs.php19
-rwxr-xr-xupdate.php21
-rwxr-xr-xupdate_daemon2.php16
6 files changed, 25 insertions, 46 deletions
diff --git a/classes/db.php b/classes/db.php
index 9b800dc22..695ca6ea2 100644
--- a/classes/db.php
+++ b/classes/db.php
@@ -53,6 +53,10 @@ class Db implements IDb {
return("'$str'");
}
+ function reconnect() {
+ $this->link = $this->adapter->connect(DB_HOST, DB_USER, DB_PASS, DB_NAME, defined('DB_PORT') ? DB_PORT : "");
+ }
+
function connect($host, $user, $pass, $db, $port) {
//return $this->adapter->connect($host, $user, $pass, $db, $port);
return ;
diff --git a/classes/handler/public.php b/classes/handler/public.php
index 3b373edf5..0d9b04686 100644
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -368,14 +368,7 @@ class Handler_Public extends Handler {
include "rssfuncs.php";
// Update all feeds needing a update.
update_daemon_common(0, true, false);
-
- // Update feedbrowser
- update_feedbrowser_cache();
-
- // Purge orphans and cleanup tags
- purge_orphans();
-
- cleanup_tags(14, 50000);
+ housekeeping_common(false);
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
diff --git a/include/functions.php b/include/functions.php
index 72b20cd06..a41d3a950 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -922,7 +922,7 @@
function get_schema_version($nocache = false) {
global $schema_version;
- if (!$schema_version) {
+ if (!$schema_version && !$nocache) {
$result = db_query("SELECT schema_version FROM ttrss_version");
$version = db_fetch_result($result, 0, "schema_version");
$schema_version = $version;
diff --git a/include/rssfuncs.php b/include/rssfuncs.php
index 48638f57e..a64d60e1e 100644
--- a/include/rssfuncs.php
+++ b/include/rssfuncs.php
@@ -1,7 +1,7 @@
<?php
define_default('DAEMON_UPDATE_LOGIN_LIMIT', 30);
define_default('DAEMON_FEED_LIMIT', 500);
- define_default('DAEMON_SLEEP_INTERVAL', 60);
+ define_default('DAEMON_SLEEP_INTERVAL', 120);
function update_feedbrowser_cache() {
@@ -150,10 +150,6 @@
WHERE feed_url IN (%s)", implode(',', $feeds_quoted)));
}
- expire_cached_files($debug);
- expire_lock_files($debug);
- expire_error_log($debug);
-
$nf = 0;
// For each feed, we call the feed update function.
@@ -1374,4 +1370,17 @@
return $error;
}
+ function housekeeping_common($debug) {
+ expire_cached_files($debug);
+ expire_lock_files($debug);
+ expire_error_log($debug);
+
+ $count = update_feedbrowser_cache();
+ _debug("Feedbrowser updated, $count feeds processed.");
+
+ purge_orphans( true);
+ $rc = cleanup_tags( 14, 50000);
+
+ _debug("Cleaned $rc cached tags.");
+ }
?>
diff --git a/update.php b/update.php
index 0853f3dd5..d4160c7ba 100755
--- a/update.php
+++ b/update.php
@@ -148,18 +148,8 @@
}
if (isset($options["feeds"])) {
- // Update all feeds needing a update.
update_daemon_common();
-
- // Update feedbrowser
- $count = update_feedbrowser_cache();
- _debug("Feedbrowser updated, $count feeds processed.");
-
- // Purge orphans and cleanup tags
- purge_orphans( true);
-
- $rc = cleanup_tags( 14, 50000);
- _debug("Cleaned $rc cached tags.");
+ housekeeping_common(true);
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
}
@@ -185,15 +175,8 @@
}
update_daemon_common(isset($options["pidlock"]) ? 50 : DAEMON_FEED_LIMIT);
+ housekeeping_common(true);
- $count = update_feedbrowser_cache();
- _debug("Feedbrowser updated, $count feeds processed.");
-
- purge_orphans( true);
-
- $rc = cleanup_tags( 14, 50000);
-
- _debug("Cleaned $rc cached tags.");
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, "hook_update_task", $op);
}
diff --git a/update_daemon2.php b/update_daemon2.php
index 7692eb930..d5b6a45e3 100755
--- a/update_daemon2.php
+++ b/update_daemon2.php
@@ -170,14 +170,15 @@
"Maybe another daemon is already running.\n");
}
- init_plugins();
-
$schema_version = get_schema_version();
if ($schema_version != SCHEMA_VERSION) {
die("Schema version is wrong, please upgrade the database.\n");
}
+ // Protip: children close shared database handle when terminating, it's a bad idea to
+ // do database stuff on main process from now on.
+
while (true) {
// Since sleep is interupted by SIGCHLD, we need another way to
@@ -190,17 +191,6 @@
}
if ($last_checkpoint + $spawn_interval < time()) {
-
- /* Check if schema version changed */
-
- $test_schema_version = get_schema_version();
-
- if ($test_schema_version != $schema_version) {
- echo "Expected schema version: $schema_version, got: $test_schema_version\n";
- echo "Schema version changed while we were running, bailing out\n";
- exit(100);
- }
-
check_ctimes();
reap_children();