downloader: performance improvement for sites that use download delay (replace datetime by time)

This commit is contained in:
Pablo Hoffman 2009-06-25 14:13:45 -03:00
parent 7933e00ebd
commit 18301b7e66
1 changed files with 5 additions and 6 deletions

View File

@ -2,7 +2,7 @@
Download web pages using asynchronous IO
"""
import datetime
from time import time
from twisted.internet import reactor, defer
@ -35,7 +35,7 @@ class SiteInfo(object):
self.active = set()
self.transferring = set()
self.closing = False
self.lastseen = None
self.lastseen = 0
def free_transfer_slots(self):
return self.max_concurrent_requests - len(self.transferring)
@ -97,10 +97,9 @@ class Downloader(object):
return
# Delay queue processing if a download_delay is configured
now = datetime.datetime.now()
if site.download_delay and site.lastseen:
delta = now - site.lastseen
penalty = site.download_delay - delta.seconds
now = time()
if site.download_delay:
penalty = site.download_delay - now + site.lastseen
if penalty > 0:
reactor.callLater(penalty, self.process_queue, spider=spider)
return