Remove pointless fetch timer
authorJack Miller <jack@codezen.org>
Sat, 15 Nov 2014 23:16:43 +0000 (17:16 -0600)
committerJack Miller <jack@codezen.org>
Sat, 15 Nov 2014 23:16:43 +0000 (17:16 -0600)
We already have a good mechanism in place for fetch thread timing, the
second layer of timing was just a way to waste time. At the cost of
taking feed_lock (a low contention lock) briefly once a second (instead
of once a minute) fetch work is done faster.

This is especially important on a fresh startup where there is no disk
presence already.

In addition, scale back some logging that is made annoying by the
increased frequency of some fetch calls.

canto_next/canto_backend.py
canto_next/feed.py
canto_next/fetch.py
canto_next/storage.py

index f24d0fe..36b4c23 100644 (file)
@@ -62,7 +62,6 @@ class CantoBackend(PluginHandler, CantoServer):
 
         # Shelf for feeds:
         self.fetch = None
-        self.fetch_timer = 0
         self.fetch_manual = False
         self.fetch_force = False
 
@@ -183,7 +182,6 @@ class CantoBackend(PluginHandler, CantoServer):
         # feeds, but also takes any new settings (like rates) into account.
 
         self.fetch_force = True
-        self.fetch_timer = 0
 
         # Pretend that the sockets *other* than the ones that made the change
         # issued a CONFIGS for each of the root keys.
@@ -534,7 +532,6 @@ class CantoBackend(PluginHandler, CantoServer):
     # override rates or any other factors in updating.
 
     def cmd_update(self, socket, args):
-        self.fetch_timer = 0
         self.fetch_manual = True
         self.fetch_force = False
 
@@ -543,7 +540,6 @@ class CantoBackend(PluginHandler, CantoServer):
     # This command, on the other hand, *will* force the timers.
 
     def cmd_forceupdate(self, socket, args):
-        self.fetch_timer = 0
         self.fetch_manual = True
         self.fetch_force = True
 
@@ -602,21 +598,16 @@ class CantoBackend(PluginHandler, CantoServer):
             # Clean up any threads done updating.
             self.fetch.reap()
 
-            # Decrement all timers
-
-            self.fetch_timer -= 1
-
             # Check whether feeds need to be updated and fetch
             # them if necessary.
 
-            if self.fetch_timer <= 0 and (not self.no_fetch or self.fetch_manual):
+            if (not self.no_fetch or self.fetch_manual):
                 feed_lock.acquire_read()
 
                 self.fetch.fetch(self.fetch_force, False)
 
                 self.fetch_manual = False
                 self.fetch_force = False
-                self.fetch_timer = FETCH_CHECK_INTERVAL
 
                 feed_lock.release_read()
 
index 467bb19..5689f84 100644 (file)
@@ -416,7 +416,6 @@ class CantoFeed(PluginHandler):
             # Go through and take items in old_contents that didn't make it
             # into update_contents / self.items and remove them from all tags.
 
-
             tag_lock.release_write()
         else:
             self.lock.release_write()
index 1fc8e71..6acfac4 100644 (file)
@@ -155,8 +155,6 @@ class CantoFetch():
 
         passed = time.time() - f["canto_update"]
         if passed < feed.rate * 60:
-            log.debug("Not enough time passed on %s (only %sm)" %
-                    (feed.URL, passed / 60))
             needs_update = False
 
         return needs_update
index 1088433..09ea839 100644 (file)
@@ -92,7 +92,6 @@ class CantoShelf():
     def __getitem__(self, name):
         if name in self.cache:
             return self.cache[name]
-        log.debug("getitem hitting shelf")
         return self.shelf[name]
 
     def __contains__(self, name):
@@ -108,7 +107,6 @@ class CantoShelf():
 
         if name in self.index:
             self.index.remove(name)
-            log.debug("delitem hitting shelf")
             del self.shelf[name]
 
         self.update_mod()