Reduce announce number for not recently added sites
This commit is contained in:
parent
b7bc197012
commit
5a226baaa5
1 changed files with 14 additions and 8 deletions
|
@ -332,10 +332,15 @@ class Site(object):
|
||||||
|
|
||||||
s = time.time()
|
s = time.time()
|
||||||
self.log.debug(
|
self.log.debug(
|
||||||
"Start downloading, bad_files: %s, check_size: %s, blind_includes: %s, called by: %s" %
|
"Start downloading, bad_files: %s, check_size: %s, blind_includes: %s, isAddedRecently: %s" %
|
||||||
(self.bad_files, check_size, blind_includes, Debug.formatStack())
|
(self.bad_files, check_size, blind_includes, self.isAddedRecently())
|
||||||
)
|
)
|
||||||
gevent.spawn(self.announce, force=True)
|
|
||||||
|
if self.isAddedRecently():
|
||||||
|
gevent.spawn(self.announce, mode="start", force=True)
|
||||||
|
else:
|
||||||
|
gevent.spawn(self.announce, mode="update")
|
||||||
|
|
||||||
if check_size: # Check the size first
|
if check_size: # Check the size first
|
||||||
valid = self.downloadContent("content.json", download_files=False) # Just download content.json files
|
valid = self.downloadContent("content.json", download_files=False) # Just download content.json files
|
||||||
if not valid:
|
if not valid:
|
||||||
|
@ -437,7 +442,7 @@ class Site(object):
|
||||||
|
|
||||||
# Wait for peers
|
# Wait for peers
|
||||||
if not self.peers:
|
if not self.peers:
|
||||||
self.announce()
|
self.announce(mode="update")
|
||||||
for wait in range(10):
|
for wait in range(10):
|
||||||
time.sleep(5 + wait)
|
time.sleep(5 + wait)
|
||||||
self.log.debug("CheckModifications: Waiting for peers...")
|
self.log.debug("CheckModifications: Waiting for peers...")
|
||||||
|
@ -494,7 +499,7 @@ class Site(object):
|
||||||
self.checkBadFiles()
|
self.checkBadFiles()
|
||||||
|
|
||||||
if announce:
|
if announce:
|
||||||
self.announce(force=True)
|
self.announce(mode="update", force=True)
|
||||||
|
|
||||||
# Full update, we can reset bad files
|
# Full update, we can reset bad files
|
||||||
if check_files and since == 0:
|
if check_files and since == 0:
|
||||||
|
@ -581,7 +586,7 @@ class Site(object):
|
||||||
publishers = [] # Publisher threads
|
publishers = [] # Publisher threads
|
||||||
|
|
||||||
if not self.peers:
|
if not self.peers:
|
||||||
self.announce()
|
self.announce(mode="more")
|
||||||
|
|
||||||
if limit == "default":
|
if limit == "default":
|
||||||
limit = 5
|
limit = 5
|
||||||
|
@ -788,8 +793,9 @@ class Site(object):
|
||||||
else: # Wait until file downloaded
|
else: # Wait until file downloaded
|
||||||
self.bad_files[inner_path] = self.bad_files.get(inner_path, 0) + 1 # Mark as bad file
|
self.bad_files[inner_path] = self.bad_files.get(inner_path, 0) + 1 # Mark as bad file
|
||||||
if not self.content_manager.contents.get("content.json"): # No content.json, download it first!
|
if not self.content_manager.contents.get("content.json"): # No content.json, download it first!
|
||||||
self.log.debug("Need content.json first")
|
self.log.debug("Need content.json first (inner_path: %s, priority: %s)" % (inner_path, priority))
|
||||||
gevent.spawn(self.announce)
|
if priority > 0:
|
||||||
|
gevent.spawn(self.announce)
|
||||||
if inner_path != "content.json": # Prevent double download
|
if inner_path != "content.json": # Prevent double download
|
||||||
task = self.worker_manager.addTask("content.json", peer)
|
task = self.worker_manager.addTask("content.json", peer)
|
||||||
task["evt"].get()
|
task["evt"].get()
|
||||||
|
|
Loading…
Reference in a new issue