Created
August 2, 2017 16:45
-
-
Save mohclips/2472e6cba1c5d4e3184a45e90ba98383 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import gevent | |
from gevent import monkey, pool | |
monkey.patch_all() | |
import random | |
import time | |
MAX_SLEEP_TIME=4 | |
POOL_SIZE=20 | |
ITEMS_IN_LIST=155 | |
sleep_total=0 | |
jobs = [] | |
p = pool.Pool(POOL_SIZE) | |
start = time.time() | |
tic = lambda: 'at %1.1f seconds' % (time.time() - start) | |
def worker(name): | |
global sleep_total | |
sleep_time = random.randint(1, MAX_SLEEP_TIME) | |
print('Worker doing item %s sleepy time %s' % (name, sleep_time)) | |
time.sleep(sleep_time) | |
sleep_total = sleep_total + sleep_time | |
# | |
# Main | |
# | |
print('Started Polling: %s' % tic()) | |
# load up our things to do, into a list as we spawn them | |
for x in xrange(1,ITEMS_IN_LIST): | |
jobs.append( | |
p.spawn(worker, x) | |
) | |
# do stuff | |
gevent.joinall(jobs) | |
print('Ended Polling: %s' % tic()) | |
print "Sleep total:", sleep_total, "how long we should have waited if synchronously run" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Started Polling: at 0.0 seconds | |
Worker doing item 1 sleepy time 1 | |
Worker doing item 2 sleepy time 3 | |
Worker doing item 3 sleepy time 1 | |
Worker doing item 4 sleepy time 3 | |
Worker doing item 5 sleepy time 1 | |
. | |
. | |
. | |
Worker doing item 144 sleepy time 1 | |
Worker doing item 145 sleepy time 3 | |
Worker doing item 146 sleepy time 4 | |
Worker doing item 147 sleepy time 4 | |
Worker doing item 148 sleepy time 2 | |
Worker doing item 149 sleepy time 2 | |
Worker doing item 150 sleepy time 3 | |
Worker doing item 151 sleepy time 4 | |
Worker doing item 152 sleepy time 3 | |
Worker doing item 153 sleepy time 1 | |
Worker doing item 154 sleepy time 1 | |
Ended Polling: at 21.0 seconds | |
Sleep total: 376 how long we should have waited if synchronously run |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment