Какова цель класса throttler, когда я могу просто использовать time.sleep () - PullRequest
0 голосов
/ 16 января 2019
class Throttle:
    #add delay between download for eacch delay
    def __init__(self,delay):
        #amount of delay between downloads
        self.delay=delay
        #timestamp of when a domain was last accessed
        self.domains={}

    def wait(self,url):
        domain=urlparse.urlparse(url).netloc
        last_accessed=self.domains.get(domain)
        if self.delay > 0 and last_accessed is not None:
            sleeps_secs=self.delay-(datetime.datetime.now()-last_accessed).seconds
            if sleeps_secs > 0:
                #domain has been recently accessed
                #so we need to sleep
                time.sleep(sleeps_secs)
        #update last accessed time
        self.domains[domain]=datetime.datetime.now()

Может кто-нибудь объяснить мне, как это работает и почему это полезно? .. я получил это из книги, Кроме того, почему бы не использовать time.sleep(2) вместо этого

...