lunes, 12 de junio de 2017

Ejemplo 2017-06: Cliente Multihilos.

Resumen.- 
Implementar un cliente multihilos para pruebas.

Descripción.- 
Con la finalidad de realizar pruebas de esfuerzo a un servidor de transacciones, me pidieron modificar un programa en Python (2.7). Pero decidí, por cuenta propia, hacerlo en Groovy. De todas formas, el tiempo que me hiba a tomar entender el programa y modificarlo, no podría exceder el tiempo que hacerlo en un script.

Fue la decisión correcta, porque el luego me pidieron que lea y generé información de la BBDD. Pero en este ejemplo, solo mostraré cómo implementar un script para generar multiples hilos que ejecuten un procedimiento en concreto. Intenten hacerlo en Java y notarán la diferencia en líneas de código.

Entonces, el procedimiento lo definimos en myClosure: capturar el tiempo (epoch) y determinar una velocidad entre 0 y 80. Se imprime el resultado y luego espera cinco segundos. El tiempo es definido al principio.

Se van a crear la cantidad de hilos que defina el usuario. Por defecto será diez, en caso no se indique en el comando de ejecución. La variable cantHilos, se debe anotar con @Field para poder hacerlo global en el script.

Para ejecutarlo, nos ubicamos en la carpeta del script y en línea de comandos escribimos:
groovy MultiClient 100

PD: En esta ocasión usé el editor Brackets. Debo mencionar que el "sintaxis highlight" se comporta de forma correcta.

Código Fuente.- 
https://github.com/edgargs/MultiClientScript.git

Bibliografía.- 
http://www.tothenew.com/blog/how-to-use-thread-pooling-using-groovy/
https://stackoverflow.com/questions/6305910/how-do-i-create-and-access-the-global-variables-in-groovy

Configuración.- 
Groovy 2.4.8
Java 1.8
Brackets 1.9