J'appelle une fonction task(url, param1, param2)
qui renvoie le résultat d'un appel d'API à url = url
ou le nom url
si l'appel API n'a pas fonctionné. Mon task
ressemble à quelque chose comme:renvoyer des valeurs à partir d'exceptions dans le multitraitement
def task(url, param1, param2):
try:
make_api_call(url, param1, param2)
except ValueError as e:
print("val error")
return url
Maintenant, je veux appliquer task
à une liste de 100 urls et commencer à les multiprocessing
comme:
import multiprocessing as mp
def run_tasks(urls, param1, param2):
jobs = []
for i in range(len(urls)):
process = mp.Process(target=task, args=(urls[i], param1, param2))
jobs.append(process)
## catch error processes
error_urls = []
## start processes
for j in jobs:
j.start()
## finish processes
for j in jobs:
j.join()
De ce qui précède run_tasks
, comment pourrais-je retourner une liste de le url
s qui m'avait donné un ValueError
? J'ai essayé error_urls.append(j.join())
, mais cela n'a pas fonctionné.