Skip to content

Instantly share code, notes, and snippets.

@dmitryhd
Created December 10, 2015 11:11
Show Gist options
  • Select an option

  • Save dmitryhd/67dc4df4f199c0f1aae7 to your computer and use it in GitHub Desktop.

Select an option

Save dmitryhd/67dc4df4f199c0f1aae7 to your computer and use it in GitHub Desktop.
simple_mp_example
import multiprocessing as mp
import logging
def get_mp_logger():
logger = mp.get_logger()
logger.handlers = [logging.FileHandler('/tmp/pool.log', mode='a'), logging.StreamHandler()]
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s %(message)s')
logger.handlers[0].setFormatter(f)
logger.handlers[1].setFormatter(f)
return logger
def func(arg1, arg2):
from time import sleep
local_logger = mp.get_logger()
try:
sleep(1)
local_logger.info('Process {}'.format(arg2))
print(arg1, arg2)
if arg2 == 2:
raise Exception('omg, 2!')
except Exception as e:
local_logger.exception(e)
logger = get_mp_logger()
pool = mp.Pool(2)
results = []
for i in range(5):
results.append(pool.apply_async(func, ['a', i]))
for res in results:
res.get()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment