All pastes #992525 Raw Edit

Anonymous

public text v1 · immutable
#992525 ·published 2008-04-21 21:49 UTC
rendered paste body
maxSimultaneousUsers = 8

import sys

from twisted.internet import reactor
from twisted.internet.defer import succeed, DeferredList
from twisted.web.client import getPage
from tester import urlForUser

def getUser(user):
    return getPage(urlForUser(user))

def gotUser(data, user):
    return nextUser()

def nextUser():
    if not users:
        return succeed(None)

    user = users.pop()

    d = getUser(user)
    d.addBoth(gotUser, user)
    return d

##
# Do The Right Thing
##

users = sys.argv[1:]

#                                                                                                                                      
# Create a deferred list where each deferred in the list is a work                                                                     
# queue.                                                                                                                               
#                                                                                                                                      

ds = []
c = maxSimultaneousUsers

while (c):
    ds.append(nextUser())
    c -= 1

d = DeferredList(ds)
d.addBoth(lambda _: reactor.stop())
reactor.run()