]> git.wh0rd.org - tt-rss.git/blobdiff - functions.php
add multiprocess update daemon
[tt-rss.git] / functions.php
index e0eb2bb0e9c1c3026e0261dc87c6b9bd76f97e6e..9bd98795b646009b0126868ee3efd06ecf7218ab 100644 (file)
                        _debug("update_rss_feed: start");
                }
 
-               $result = db_query($link, "SELECT id,update_interval,auth_login,auth_pass,cache_images
-                       FROM ttrss_feeds WHERE id = '$feed'");
+               if (DB_TYPE == "pgsql") {
+                               $updstart_thresh_qpart = "(ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started >= NOW() - INTERVAL '120 seconds')";
+                       } else {
+                               $updstart_thresh_qpart = "(ttrss_feeds.last_update_started IS NULL OR ttrss_feeds.last_update_started >= DATE_SUB(NOW(), INTERVAL 120 SECOND))";
+                       }                       
+
+               $result = db_query($link, "SELECT id,update_interval,auth_login,
+                       auth_pass,cache_images
+                       FROM ttrss_feeds WHERE id = '$feed' AND $updstart_thresh_qpart");
 
                if (db_num_rows($result) == 0) {
                        if (defined('DAEMON_EXTENDED_DEBUG') || $_GET['xdebug']) {
-                               _debug("update_rss_feed: feed $feed [$feed_url] NOT FOUND");
+                               _debug("update_rss_feed: feed $feed [$feed_url] NOT FOUND/SKIPPED");
                        }               
                        return;
                }
 
+               db_query($link, "UPDATE ttrss_feeds SET last_update_started = NOW()
+                       WHERE id = '$feed'");
+
                $auth_login = db_fetch_result($result, 0, "auth_login");
                $auth_pass = db_fetch_result($result, 0, "auth_pass");