]> git.wh0rd.org - tt-rss.git/blobdiff - update_daemon2.php
daemon: enable master lockfile
[tt-rss.git] / update_daemon2.php
index 80848bd0a4307d94a9d73e07a0d98f70b4268a8c..cee61bb6e69ad52e3a5c6d93db0d025b2d5d2a34 100755 (executable)
@@ -1,10 +1,7 @@
-#!/usr/bin/php
+#!/usr/bin/env php
 <?php
-       set_include_path(get_include_path() . PATH_SEPARATOR .
-               dirname(__FILE__) . "/include");
-
-       // This is an experimental multiprocess update daemon.
-       // Some configurable variable may be found below.
+       set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
+               get_include_path());
 
        declare(ticks = 1);
        chdir(dirname(__FILE__));
        define('PURGE_INTERVAL', 3600); // seconds
        define('MAX_CHILD_RUNTIME', 600); // seconds
 
+       require_once "functions.php";
+       require_once "rssfuncs.php";
        require_once "sanity_check.php";
        require_once "config.php";
        require_once "db.php";
        require_once "db-prefs.php";
-       require_once "functions.php";
-       require_once "rssfuncs.php";
-       require_once "lib/magpierss/rss_fetch.inc";
 
        define('MAX_JOBS', 2);
        define('SPAWN_INTERVAL', DAEMON_SLEEP_INTERVAL);
                        "Maybe another daemon is already running.\n");
        }
 
-       if (!pcntl_fork()) {
+       // Try to lock a file in order to avoid concurrent update.
+       $lock_handle = make_lockfile("update_daemon.lock");
+
+       if (!$lock_handle) {
+               die("error: Can't create lockfile. ".
+                       "Maybe another daemon is already running.\n");
+       }
+
+       /* if (!pcntl_fork()) {
                pcntl_signal(SIGINT, 'sigint_handler');
                register_shutdown_function('shutdown');
 
                }
 
                while (true) { sleep(100); }
-       }
+       } */
 
        // Testing database connection.
        // It is unnecessary to start the fork loop if database is not ok.
 
                                                _debug("Cleaned $rc cached tags.");
 
-                                               _debug("Updating linked feeds...");
-                                               get_linked_feeds($link);
-
+                                               global $pluginhost;
+                                               $pluginhost->run_hooks($pluginhost::HOOK_UPDATE_TASK, "hook_update_task", $op);
                                        }
 
                                        _debug("Elapsed time: " . (time() - $start_timestamp) . " second(s)");