def test_antistampede(self): SECONDS = 4 # We MUST make an initial synchronous request in order to create the # AntiStampedeCache object, and populate its selecting_headers, # before the actual stampede. self.getPage("/long_process?seconds=%d" % SECONDS) self.assertBody('success!') self.getPage("/clear_cache?path=" + quote('/long_process?seconds=%d' % SECONDS, safe='')) self.assertStatus(200) start = datetime.datetime.now() def run(): self.getPage("/long_process?seconds=%d" % SECONDS) # The response should be the same every time self.assertBody('success!') ts = [threading.Thread(target=run) for i in xrange(100)] for t in ts: t.start() for t in ts: t.join() self.assertEqualDates( start, datetime.datetime.now(), # Allow a second (two, for slow hosts) # for our thread/TCP overhead etc. seconds=SECONDS + 2)
def test_antistampede(self): SECONDS = 4 self.getPage('/long_process?seconds=%d' % SECONDS) self.assertBody('success!') self.getPage('/clear_cache?path=' + quote('/long_process?seconds=%d' % SECONDS, safe='')) self.assertStatus(200) sys.stdout.write('prepped... ') sys.stdout.flush() start = datetime.datetime.now() def run(): self.getPage('/long_process?seconds=%d' % SECONDS) self.assertBody('success!') ts = [threading.Thread(target=run) for i in xrange(100)] for t in ts: t.start() for t in ts: t.join() self.assertEqualDates(start, datetime.datetime.now(), seconds=SECONDS + 1.1)
def test_antistampede(self): SECONDS = 4 # We MUST make an initial synchronous request in order to create the # AntiStampedeCache object, and populate its selecting_headers, # before the actual stampede. self.getPage("/long_process?seconds=%d" % SECONDS) self.assertBody('success!') self.getPage("/clear_cache?path=" + quote('/long_process?seconds=%d' % SECONDS, safe='')) self.assertStatus(200) start = datetime.datetime.now() def run(): self.getPage("/long_process?seconds=%d" % SECONDS) # The response should be the same every time self.assertBody('success!') ts = [threading.Thread(target=run) for i in xrange(100)] for t in ts: t.start() for t in ts: t.join() self.assertEqualDates(start, datetime.datetime.now(), # Allow a second (two, for slow hosts) # for our thread/TCP overhead etc. seconds=SECONDS + 2)
def test_antistampede(self): SECONDS = 4 slow_url = "/long_process?seconds={SECONDS}".format(**locals()) # We MUST make an initial synchronous request in order to create the # AntiStampedeCache object, and populate its selecting_headers, # before the actual stampede. self.getPage(slow_url) self.assertBody('success!') self.getPage("/clear_cache?path=" + quote(slow_url, safe='')) self.assertStatus(200) start = datetime.datetime.now() def run(): self.getPage(slow_url) # The response should be the same every time self.assertBody('success!') ts = [threading.Thread(target=run) for i in xrange(100)] for t in ts: t.start() for t in ts: t.join() finish = datetime.datetime.now() # Allow for overhead, two seconds for slow hosts allowance = SECONDS + 2 self.assertEqualDates(start, finish, seconds=allowance)
def test_antistampede(self): SECONDS = 4 slow_url = '/long_process?seconds={SECONDS}'.format(**locals()) # We MUST make an initial synchronous request in order to create the # AntiStampedeCache object, and populate its selecting_headers, # before the actual stampede. self.getPage(slow_url) self.assertBody('success!') self.getPage('/clear_cache?path=' + quote(slow_url, safe='')) self.assertStatus(200) start = datetime.datetime.now() def run(): self.getPage(slow_url) # The response should be the same every time self.assertBody('success!') ts = [threading.Thread(target=run) for i in xrange(100)] for t in ts: t.start() for t in ts: t.join() finish = datetime.datetime.now() # Allow for overhead, two seconds for slow hosts allowance = SECONDS + 2 self.assertEqualDates(start, finish, seconds=allowance)
def test_antistampede(self): SECONDS = 4 self.getPage('/long_process?seconds=%d' % SECONDS) self.assertBody('success!') self.getPage('/clear_cache?path=' + quote('/long_process?seconds=%d' % SECONDS, safe='')) self.assertStatus(200) sys.stdout.write('prepped... ') sys.stdout.flush() start = datetime.datetime.now() def run(): self.getPage('/long_process?seconds=%d' % SECONDS) self.assertBody('success!') ts = [ threading.Thread(target=run) for i in xrange(100) ] for t in ts: t.start() for t in ts: t.join() self.assertEqualDates(start, datetime.datetime.now(), seconds=SECONDS + 1.1)
def stream(self, id = None): for x in xrange(100000000): yield str(x)
def stream(self, id=None): for x in xrange(100000000): yield str(x)