Comando parallel
En mi trabajo actual usamos muchas API's por lo cual es comun que tenga que validar muchos recursos con diferentes Id's, cuando estamos hablando de mas de miles ejecutar estos Curls en serie puede tomar un tiempo considerable, es aqui cuando parallel me ahorra mucho tiempo.
Por lo general genero un archivo CSV con todos los Id's que tengo que consultar:
>> cat data.csv
Id_1Id_2Id_3Id_4
Y por lo general tengo algun bash script que ejecuta una acción por cada Id:
>> cat run.sh
#!/bin/bash
curl -XGET "https://some_api.com/resource/$1"
Con esto en mente puedo ejectar en paralelo todos los GET's:
>> parallel -a data.csv ./run.sh
Si queres controlar el numero de hilos de ejecución se hace pasando el parametro "-j", por ejemplo si quiero ejecutar en 4 hilos:
>> parallel -j 4 -a data.csv ./run.sh