Capítulo 14. El contexto
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Los servidores necesitan una forma de gestionar los metadatos sobre las solicitudes individuales. Estos metadatos se dividen en dos categorías generales: metadatos necesarios para procesar correctamente la solicitud, y metadatos sobre cuándo dejar de procesar la solicitud. Por ejemplo, un servidor HTTP podría querer utilizar un ID de seguimiento para identificar una cadena de solicitudes a través de un conjunto de microservicios. También podría querer establecer un temporizador que finalice las peticiones a otros microservicios si tardan demasiado.
Muchos lenguajes utilizan variables threadlocal para almacenar este tipo de información, asociando los datos a un hilo de ejecución específico del sistema operativo. Esto no funciona en Go porque las goroutines no tienen identidades únicas que puedan utilizarse para buscar valores. Y lo que es más importante, las threadlocals parecen mágicas; los valores van a un sitio y aparecen en otro.
Go resuelve el problema de los metadatos de solicitud con una construcción llamada contexto. Veamos cómo utilizarlo correctamente.
¿Cuál es el contexto?
En lugar de añadir una nueva característica al lenguaje, un contexto es simplemente una instancia que cumple la interfaz Context
definida en el paquete context
. Como sabes, el Go idiomático fomenta el paso explícito de datos mediante parámetros de función. ...
Get Aprender Go, 2ª Edición now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.