return 'done after sleeping {0} seconds.'.format(duration)
pool = multiprocessing.Pool(1)
print('starting....')
res = pool.apply_async(do_this_other_thing_that_may_take_too_long, [8])
for timeout in range(1, 10):
    pass
правильный способ запустить код с тайм-аутом в Python