]> git.wh0rd.org - tt-rss.git/commitdiff
update_daemon improvements
authorAndrew Dolgov <fox@bah.spb.su>
Sun, 12 Feb 2006 07:21:43 +0000 (08:21 +0100)
committerAndrew Dolgov <fox@bah.spb.su>
Sun, 12 Feb 2006 07:21:43 +0000 (08:21 +0100)
update_daemon.php

index 9061a449872fc4c00c0e41a84c539abd762f34c9..3e0ff7bece2597cd390b839b47e5cd1630f89715 100644 (file)
@@ -3,12 +3,10 @@
        // this daemon runs in the background and updates all feeds
        // continuously
 
-       define('SLEEP_INTERVAL', 10); // seconds
-
-       // TODO: allow update scheduling from users
+       declare(ticks = 1);
 
+       define('SLEEP_INTERVAL', 10); // seconds between update runs
        define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache-daemon');
-
        define('DISABLE_SESSIONS', true);
 
        require_once "sanity_check.php";
        require_once "functions.php";
        require_once "magpierss/rss_fetch.inc";
 
+       function sigint_handler() {
+               unlink("update_daemon.lock");
+               die("Received SIGINT. Exiting.\n");
+       }
+
+       pcntl_signal(SIGINT, sigint_handler);
+
+       $lock_handle = make_lockfile("update_daemon.lock");
+
+       if (!$lock_handle) {
+               die("error: Can't create lockfile ($lock_filename). ".
+                       "Maybe another daemon is already running.");
+       }
+
        $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
 
        if (!$link) {
@@ -35,6 +47,7 @@
        while (true) {
 
                // FIXME: get all scheduled updates w/forced refetch
+               // Stub, until I figure out if it is really needed.
 
 #              $result = db_query($link, "SELECT * FROM ttrss_scheduled_updates ORDER BY id");
 #              while ($line = db_fetch_assoc($result)) {
@@ -50,7 +63,7 @@
        
                while ($line = db_fetch_assoc($result)) {
        
-                       print "Checking feed: " . $line["feed_url"] . "\n";
+                       print "Feed: " . $line["feed_url"] . ": ";
        
                        $upd_intl = $line["update_interval"];
        
                        if (!$line["last_updated"] || 
                                time() - strtotime($line["last_updated"]) > ($upd_intl * 60)) {
        
-                               print "Updating...\n";
-       
-                               update_rss_feed($link, $line["feed_url"], $line["id"], true);
-       
+                               print "Updating...\n";  
+                               update_rss_feed($link, $line["feed_url"], $line["id"], true);   
+                       } else {
+                               print "Update not needed.\n";
                        }
                }