Я использую multiprocessing.Pool для Python и apply_async для вызова группы функций.
Как узнать, начала ли функция обрабатываться членом пула или находится в очереди?
Например:
import multiprocessing
import time
def func(t):
#take some time processing
print 'func({}) started'.format(t)
time.sleep(t)
pool = multiprocessing.Pool()
results = [pool.apply_async(func, [t]) for t in [100]*50] #adds 50 func calls to the queue
Для каждого AsyncResult
в results
вы можете позвонить ready()
или get(0)
, чтобы увидеть, завершился ли функционал.Но как узнать, запущен ли func , но еще не завершен?
, то есть для данного объекта AsyncResult (т. Е. Для данного элемента результатов) есть ли способ узнать,функция была вызвана или она находится в очереди пула?