Как определить, запущена ли функция apply_async или она все еще находится в очереди с мультипроцессором. - PullRequest
0 голосов
/ 02 февраля 2019

Я использую 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 (т. Е. Для данного элемента результатов) есть ли способ узнать,функция была вызвана или она находится в очереди пула?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...