(self)
| 315 | |
| 316 | # Announce sites every 20 min |
| 317 | def announceSites(self): |
| 318 | time.sleep(5 * 60) # Sites already announced on startup |
| 319 | while 1: |
| 320 | config.loadTrackersFile() |
| 321 | s = time.time() |
| 322 | for address, site in list(self.sites.items()): |
| 323 | if not site.isServing(): |
| 324 | continue |
| 325 | gevent.spawn(self.announceSite, site).join(timeout=10) |
| 326 | time.sleep(1) |
| 327 | taken = time.time() - s |
| 328 | |
| 329 | sleep = max(0, 60 * 20 / len(config.trackers) - taken) # Query all trackers one-by-one in 20 minutes evenly distributed |
| 330 | self.log.debug("Site announce tracker done in %.3fs, sleeping for %.3fs..." % (taken, sleep)) |
| 331 | time.sleep(sleep) |
| 332 | |
| 333 | # Detects if computer back from wakeup |
| 334 | def wakeupWatcher(self): |
nothing calls this directly
no test coverage detected