]> git.wh0rd.org - tt-rss.git/commitdiff
unify houskeeping stuff, increase spawn interval
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Wed, 24 Apr 2013 10:54:59 +0000 (14:54 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Wed, 24 Apr 2013 10:54:59 +0000 (14:54 +0400)
classes/db.php
classes/handler/public.php
include/functions.php
include/rssfuncs.php
update.php
update_daemon2.php

index 9b800dc22e345f3fa6b5e27457daad5d10f53900..695ca6ea2e47bcd2e523474bf5acafd769a05049 100644 (file)
@@ -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 ;
index 3b373edf536737693da2cba1da647f0ccc8f8828..0d9b046869eb02eece62bb788f3afa55ddec1757 100644 (file)
@@ -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);
 
index 72b20cd062b939042639a9cafb927cc901893e60..a41d3a950c6ba393fd827b0389ba778e08271169 100644 (file)
        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;
index 48638f57ef6e08a102b0294e8fb5c992d0af6e4e..a64d60e1eebbbc84ba29e89dcda4b7713cb035c1 100644 (file)
@@ -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() {
 
                                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.
                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.");
+       }
 ?>
index 0853f3dd551e01630134113750d5f28637313bb1..d4160c7ba1cc557367184ee0a959b52a6477e62d 100755 (executable)
        }
 
        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);
        }
                }
 
                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);
        }
 
index 7692eb93030c0ec583cfb229ebdcda8fa35bb71f..d5b6a45e36b0cf35fa088f875840382077d2544e 100755 (executable)
                        "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
                }
 
                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();