| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- from billiard.pool import DynamicPool
 
- from multiprocessing import get_logger, log_to_stderr
 
- import logging
 
- def setup_logger():
 
-     log_to_stderr()
 
-     logger = get_logger()
 
-     logger.setLevel(logging.DEBUG)
 
-     return logger
 
- def target(n):
 
-     r = n * n
 
-     setup_logger().info("%d * %d = %d" % (n, n, r))
 
-     return r
 
- def exit_process():
 
-     setup_logger().error("EXITING NOW!")
 
-     import os
 
-     os._exit(0)
 
- def send_exit(pool):
 
-     pool.apply_async(exit_process)
 
- def do_work(pool):
 
-     results = [pool.apply_async(target, args=[i]) for i in range(10)]
 
-     [result.get() for result in results]
 
- def workpool():
 
-     pool = DynamicPool(2)
 
-     do_work(pool)
 
-     print("GROWING")
 
-     pool.grow(1)
 
-     do_work(pool)
 
-     send_exit(pool)
 
-     import time
 
-     time.sleep(2)
 
-     pool.replace_dead_workers()
 
-     do_work(pool)
 
- if __name__ == "__main__":
 
-     workpool()
 
 
  |