]> git.wh0rd.org - tt-rss.git/commitdiff
new option: MAX_UPDATE_TIME
authorAndrew Dolgov <fox@bah.spb.su>
Sat, 11 Feb 2006 04:47:52 +0000 (05:47 +0100)
committerAndrew Dolgov <fox@bah.spb.su>
Sat, 11 Feb 2006 04:47:52 +0000 (05:47 +0100)
config.php-dist
functions.php

index db739a75072622dddc91bf4b43a17b6ec6c6c5ad..7326586b216f927b4779588421df79b066a3480e 100644 (file)
 
        define('FEEDS_FRAME_REFRESH', 600);
        // Auto refresh interval for feeds frame (in seconds)
+
+       define('MAX_UPDATE_TIME', 0);
+       // Limit one update sequence run to this number of seconds.
+       // The valiue is not exact, because it is being checked between feed updates,
+       // which could use abritrary amount of time.    Feeds which could not be updated
+       // in time, are being skipped.
+       // If this option is enabled (non-zero) feeds are updated in random order.
+       // It is also recommended to set FEEDS_FRAME_REFRESH to a lower value if using
+       // this option.
        
        // vim:ft=php
 ?>
index 536f5d66dc8cf5a02c898c9bd1586099aa4b2e13..2e25b95003bce4e1dd2985bc44b44b34e9cb5845 100644 (file)
 
 //             db_query($link, "BEGIN");
 
+               if (MAX_UPDATE_TIME > 0) {
+                       if (DB_TYPE == "mysql") {
+                               $q_order = "RAND()";
+                       } else {
+                               $q_order = "RANDOM()";
+                       }
+               } else {
+                       $q_order = "last_updated DESC";
+               }
+
                $result = db_query($link, "SELECT feed_url,id,
                        SUBSTRING(last_updated,1,19) AS last_updated,
                        update_interval FROM ttrss_feeds WHERE owner_uid = '$user_id'
-                       ORDER BY last_updated DESC");
+                       ORDER BY $q_order");
+
+               $upd_start = time();
 
                while ($line = db_fetch_assoc($result)) {
                        $upd_intl = $line["update_interval"];
                        if ($fetch || (!$line["last_updated"] || 
                                time() - strtotime($line["last_updated"]) > ($upd_intl * 60))) {
 
+//                             print "<!-- feed: ".$line["feed_url"]." -->";
+
                                update_rss_feed($link, $line["feed_url"], $line["id"], $force_daemon);
+
+                               $upd_elapsed = time() - $upd_start;
+
+                               if (MAX_UPDATE_TIME > 0 && $upd_elapsed > MAX_UPDATE_TIME) {
+                                       return;
+                               }
                        }
                }