| 123456789101112131415161718192021222324252627282930313233343536373839404142 | import timefrom celery import Celerycelery = Celery()celery.conf.update(BROKER_TRANSPORT="memory",                   BROKER_POOL_LIMIT=1,                   CELERY_PREFETCH_MULTIPLIER=0,                   CELERY_DISABLE_RATE_LIMITS=True,                   CELERY_BACKEND=None)def bench_consumer(n=10000):    from celery.worker import WorkController    from celery.worker import state    worker = WorkController(app=celery, pool_cls="solo")    time_start = [None]    @celery.task()    def it(i):        if not i:            time_start[0] = time.time()        elif i == n - 1:            print(time.time() - time_start[0])    @celery.task()    def shutdown_worker():        raise SystemExit()    for i in xrange(n):        it.delay(i)    shutdown_worker.delay()    try:        worker.start()    except SystemExit:        assert sum(state.total_count.values()) == n + 1if __name__ == "__main__":    bench_consumer()
 |