]> git.wh0rd.org - tt-rss.git/blobdiff - update_daemon2.php
daemon: enable master lockfile
[tt-rss.git] / update_daemon2.php
index b79a1a2b282e32b6a015051063a702b83c990230..cee61bb6e69ad52e3a5c6d93db0d025b2d5d2a34 100755 (executable)
@@ -1,10 +1,7 @@
 #!/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__));
@@ -26,7 +23,6 @@
        require_once "config.php";
        require_once "db.php";
        require_once "db-prefs.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.
 
                                        if (!init_connection($link)) return;
 
-                                       $plugins = new Plugins($link);
-
                                        // We disable stamp file, since it is of no use in a multiprocess update.
                                        // not really, tho for the time being -fox
                                        if (!make_stampfile('update_daemon.stamp')) {
 
                                                _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)");