¿Cómo ejecutar tareas repetitivas con un intervalo dado en Go?
¡Hola a todos! Soy nuevo en Go y estoy escribiendo un pequeño servicio de monitoreo. Necesito que cada 5 segundos el programa verifique el estado de un servidor remoto y registre el resultado en un log. Probé usar `time.Sleep()` en un bucle infinito, pero parece improvisado y, creo, bloquea incorrectamente todo el programa. Aquí está mi código actual:
```go
package main
import (
"fmt"
"time"
)
func main() {
for {
fmt.Println("Verificando servidor...")
// aquí alguna lógica de verificación
time.Sleep(5 * time.Second)
}
}
```
El problema es que si quiero detener este bucle (por ejemplo, por una señal de finalización del programa), tendré que esperar a que termine el `Sleep`. Además, he oído que en Go hay goroutines y channels, pero no entiendo cómo aplicarlos para esta tarea.
¿Podrían indicarme si hay una forma estándar en Go de ejecutar acciones repetitivas a intervalos regulares? Preferiblemente con posibilidad de graceful shutdown. Agradeceré ejemplos de código.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs