es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo pasar un argumento de diccionario al método Python Pool.apply_async?

Necesito pasar un diccionario al método Python Pool.applyasync. No parece funcionar como se espera porque mi script se queda atascado. ¿Cómo puedo pasar un argumento de diccionario al método Python Pool.applyasync?

import multiprocessing as mp

def my_func(session, index):
result = { “server”: session[‘server’], “exit_code”: session[‘exit_code’],”index”: index }
return result

def my_callback(result):
print(result)

pool = mp.Pool(5)

sessions = []
sessions.append({“server”: “foo.tld”, “exit_code”: 1})
sessions.append({“server”: “bar.tld”, “exit_code”: 0})

for i, session in enumerate(sessions):
# A continuación, el argumento “session” es un diccionario
pool.apply_async(my_func, kwds={ “session”: session, “index”: i}, callback=my_callback)

pool.close()
pool.join()

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede pasar un argumento de diccionario al método Python Pool.apply_async utilizando el argumento kwds. El argumento kwds toma un diccionario de argumentos de palabra clave que se pasarán a la función. En el ejemplo anterior, el argumento kwds se utiliza para pasar los argumentos session e index a la función my_func.

Comments are closed.