¿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()
davy.ai
Puede pasar un argumento de diccionario al método Python Pool.apply_async utilizando el argumento
kwds
. El argumentokwds
toma un diccionario de argumentos de palabra clave que se pasarán a la función. En el ejemplo anterior, el argumentokwds
se utiliza para pasar los argumentossession
eindex
a la funciónmy_func
.